/* * 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.base; import java.awt.Color; import java.io.IOException; import java.io.ObjectInputStream; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import net.sf.jasperreports.engine.JRBox; import net.sf.jasperreports.engine.JRChild; import net.sf.jasperreports.engine.JRConstants; import net.sf.jasperreports.engine.JRElement; import net.sf.jasperreports.engine.JRExpressionCollector; import net.sf.jasperreports.engine.JRFrame; import net.sf.jasperreports.engine.JRLineBox; import net.sf.jasperreports.engine.JRVisitor; import net.sf.jasperreports.engine.type.ModeEnum; import net.sf.jasperreports.engine.util.JRBoxUtil; import net.sf.jasperreports.engine.util.JRPenUtil; import net.sf.jasperreports.engine.util.JRStyleResolver; import net.sf.jasperreports.engine.util.LineBoxWrapper; /** * Base read-only implementation of {@link net.sf.jasperreports.engine.JRFrame JRFrame}. * * @author Lucian Chirita (lucianc@users.sourceforge.net) * @version $Id: JRBaseFrame.java 3715 2010-04-08 18:08:49Z teodord $ */ public class JRBaseFrame extends JRBaseElement implements JRFrame { private static final long serialVersionUID = JRConstants.SERIAL_VERSION_UID; protected List children; protected JRLineBox lineBox = null; public JRBaseFrame(JRFrame frame, JRBaseObjectFactory factory) { super(frame, factory); List frameChildren = frame.getChildren(); if (frameChildren != null) { children = new ArrayList(frameChildren.size()); for (Iterator it = frameChildren.iterator(); it.hasNext();) { JRChild child = (JRChild) it.next(); children.add(factory.getVisitResult(child)); } } lineBox = frame.getLineBox().clone(this); } public JRElement[] getElements() { return JRBaseElementGroup.getElements(children); } public void collectExpressions(JRExpressionCollector collector) { collector.collect(this); } /** * */ public void visit(JRVisitor visitor) { visitor.visitFrame(this); } public List getChildren() { return children; } public JRElement getElementByKey(String elementKey) { return JRBaseElementGroup.getElementByKey(getElements(), elementKey); } public ModeEnum getModeValue() { return JRStyleResolver.getMode(this, ModeEnum.TRANSPARENT); } /** * @deprecated Replaced by {@link #getLineBox()} */ public JRBox getBox() { return new LineBoxWrapper(getLineBox()); } /** * */ public JRLineBox getLineBox() { return lineBox; } /** * @deprecated Replaced by {@link #getBox()} */ public byte getBorder() { return JRPenUtil.getPenFromLinePen(lineBox.getPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public Byte getOwnBorder() { return JRPenUtil.getOwnPenFromLinePen(lineBox.getPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public void setBorder(byte border) { JRPenUtil.setLinePenFromPen(border, lineBox.getPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public void setBorder(Byte border) { JRPenUtil.setLinePenFromPen(border, lineBox.getPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public Color getBorderColor() { return lineBox.getPen().getLineColor(); } /** * @deprecated Replaced by {@link #getBox()} */ public Color getOwnBorderColor() { return lineBox.getPen().getOwnLineColor(); } /** * @deprecated Replaced by {@link #getBox()} */ public void setBorderColor(Color borderColor) { lineBox.getPen().setLineColor(borderColor); } /** * @deprecated Replaced by {@link #getBox()} */ public int getPadding() { return lineBox.getPadding().intValue(); } /** * @deprecated Replaced by {@link #getBox()} */ public Integer getOwnPadding() { return lineBox.getOwnPadding(); } /** * @deprecated Replaced by {@link #getBox()} */ public void setPadding(int padding) { lineBox.setPadding(padding); } /** * @deprecated Replaced by {@link #getBox()} */ public void setPadding(Integer padding) { lineBox.setPadding(padding); } /** * @deprecated Replaced by {@link #getBox()} */ public byte getTopBorder() { return JRPenUtil.getPenFromLinePen(lineBox.getTopPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public Byte getOwnTopBorder() { return JRPenUtil.getOwnPenFromLinePen(lineBox.getTopPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public void setTopBorder(byte topBorder) { JRPenUtil.setLinePenFromPen(topBorder, lineBox.getTopPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public void setTopBorder(Byte topBorder) { JRPenUtil.setLinePenFromPen(topBorder, lineBox.getTopPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public Color getTopBorderColor() { return lineBox.getTopPen().getLineColor(); } /** * @deprecated Replaced by {@link #getBox()} */ public Color getOwnTopBorderColor() { return lineBox.getTopPen().getOwnLineColor(); } /** * @deprecated Replaced by {@link #getBox()} */ public void setTopBorderColor(Color topBorderColor) { lineBox.getTopPen().setLineColor(topBorderColor); } /** * @deprecated Replaced by {@link #getBox()} */ public int getTopPadding() { return lineBox.getTopPadding().intValue(); } /** * @deprecated Replaced by {@link #getBox()} */ public Integer getOwnTopPadding() { return lineBox.getOwnTopPadding(); } /** * @deprecated Replaced by {@link #getBox()} */ public void setTopPadding(int topPadding) { lineBox.setTopPadding(topPadding); } /** * @deprecated Replaced by {@link #getBox()} */ public void setTopPadding(Integer topPadding) { lineBox.setTopPadding(topPadding); } /** * @deprecated Replaced by {@link #getBox()} */ public byte getLeftBorder() { return JRPenUtil.getPenFromLinePen(lineBox.getLeftPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public Byte getOwnLeftBorder() { return JRPenUtil.getOwnPenFromLinePen(lineBox.getLeftPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public void setLeftBorder(byte leftBorder) { JRPenUtil.setLinePenFromPen(leftBorder, lineBox.getLeftPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public void setLeftBorder(Byte leftBorder) { JRPenUtil.setLinePenFromPen(leftBorder, lineBox.getLeftPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public Color getLeftBorderColor() { return lineBox.getLeftPen().getLineColor(); } /** * @deprecated Replaced by {@link #getBox()} */ public Color getOwnLeftBorderColor() { return lineBox.getLeftPen().getOwnLineColor(); } /** * @deprecated Replaced by {@link #getBox()} */ public void setLeftBorderColor(Color leftBorderColor) { lineBox.getLeftPen().setLineColor(leftBorderColor); } /** * @deprecated Replaced by {@link #getBox()} */ public int getLeftPadding() { return lineBox.getLeftPadding().intValue(); } /** * @deprecated Replaced by {@link #getBox()} */ public Integer getOwnLeftPadding() { return lineBox.getOwnLeftPadding(); } /** * @deprecated Replaced by {@link #getBox()} */ public void setLeftPadding(int leftPadding) { lineBox.setLeftPadding(leftPadding); } /** * @deprecated Replaced by {@link #getBox()} */ public void setLeftPadding(Integer leftPadding) { lineBox.setLeftPadding(leftPadding); } /** * @deprecated Replaced by {@link #getBox()} */ public byte getBottomBorder() { return JRPenUtil.getPenFromLinePen(lineBox.getBottomPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public Byte getOwnBottomBorder() { return JRPenUtil.getOwnPenFromLinePen(lineBox.getBottomPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public void setBottomBorder(byte bottomBorder) { JRPenUtil.setLinePenFromPen(bottomBorder, lineBox.getBottomPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public void setBottomBorder(Byte bottomBorder) { JRPenUtil.setLinePenFromPen(bottomBorder, lineBox.getBottomPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public Color getBottomBorderColor() { return lineBox.getBottomPen().getLineColor(); } /** * @deprecated Replaced by {@link #getBox()} */ public Color getOwnBottomBorderColor() { return lineBox.getBottomPen().getOwnLineColor(); } /** * @deprecated Replaced by {@link #getBox()} */ public void setBottomBorderColor(Color bottomBorderColor) { lineBox.getBottomPen().setLineColor(bottomBorderColor); } /** * @deprecated Replaced by {@link #getBox()} */ public int getBottomPadding() { return lineBox.getBottomPadding().intValue(); } /** * @deprecated Replaced by {@link #getBox()} */ public Integer getOwnBottomPadding() { return lineBox.getOwnBottomPadding(); } /** * @deprecated Replaced by {@link #getBox()} */ public void setBottomPadding(int bottomPadding) { lineBox.setBottomPadding(bottomPadding); } /** * @deprecated Replaced by {@link #getBox()} */ public void setBottomPadding(Integer bottomPadding) { lineBox.setBottomPadding(bottomPadding); } /** * @deprecated Replaced by {@link #getBox()} */ public byte getRightBorder() { return JRPenUtil.getPenFromLinePen(lineBox.getRightPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public Byte getOwnRightBorder() { return JRPenUtil.getOwnPenFromLinePen(lineBox.getRightPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public void setRightBorder(byte rightBorder) { JRPenUtil.setLinePenFromPen(rightBorder, lineBox.getRightPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public void setRightBorder(Byte rightBorder) { JRPenUtil.setLinePenFromPen(rightBorder, lineBox.getRightPen()); } /** * @deprecated Replaced by {@link #getBox()} */ public Color getRightBorderColor() { return lineBox.getRightPen().getLineColor(); } /** * @deprecated Replaced by {@link #getBox()} */ public Color getOwnRightBorderColor() { return lineBox.getRightPen().getOwnLineColor(); } /** * @deprecated Replaced by {@link #getBox()} */ public void setRightBorderColor(Color rightBorderColor) { lineBox.getRightPen().setLineColor(rightBorderColor); } /** * @deprecated Replaced by {@link #getBox()} */ public int getRightPadding() { return lineBox.getRightPadding().intValue(); } /** * @deprecated Replaced by {@link #getBox()} */ public Integer getOwnRightPadding() { return lineBox.getOwnRightPadding(); } /** * @deprecated Replaced by {@link #getBox()} */ public void setRightPadding(int rightPadding) { lineBox.setRightPadding(rightPadding); } /** * @deprecated Replaced by {@link #getBox()} */ public void setRightPadding(Integer rightPadding) { lineBox.setRightPadding(rightPadding); } /** * */ public Color getDefaultLineColor() { return getForecolor(); } /* * These fields are only for serialization backward compatibility. */ /** * @deprecated */ private Byte border = null; /** * @deprecated */ private Byte topBorder = null; /** * @deprecated */ private Byte leftBorder = null; /** * @deprecated */ private Byte bottomBorder = null; /** * @deprecated */ private Byte rightBorder = null; /** * @deprecated */ private Color borderColor = null; /** * @deprecated */ private Color topBorderColor = null; /** * @deprecated */ private Color leftBorderColor = null; /** * @deprecated */ private Color bottomBorderColor = null; /** * @deprecated */ private Color rightBorderColor = null; /** * @deprecated */ private Integer padding = null; /** * @deprecated */ private Integer topPadding = null; /** * @deprecated */ private Integer leftPadding = null; /** * @deprecated */ private Integer bottomPadding = null; /** * @deprecated */ private Integer rightPadding = null; private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); if (lineBox == null) { lineBox = new JRBaseLineBox(this); JRBoxUtil.setToBox( border, topBorder, leftBorder, bottomBorder, rightBorder, borderColor, topBorderColor, leftBorderColor, bottomBorderColor, rightBorderColor, padding, topPadding, leftPadding, bottomPadding, rightPadding, lineBox ); border = null; topBorder = null; leftBorder = null; bottomBorder = null; rightBorder = null; borderColor = null; topBorderColor = null; leftBorderColor = null; bottomBorderColor = null; rightBorderColor = null; padding = null; topPadding = null; leftPadding = null; bottomPadding = null; rightPadding = null; } } @Override public Object clone() { JRBaseFrame clone = (JRBaseFrame) super.clone(); if (children != null) { clone.children = new ArrayList(children.size()); for(int i = 0; i < children.size(); i++) { clone.children.add(((JRChild)children.get(i)).clone(clone)); } } return clone; } }