001: /*
002: * ============================================================================
003: * GNU Lesser General Public License
004: * ============================================================================
005: *
006: * JasperReports - Free Java report-generating library.
007: * Copyright (C) 2001-2006 JasperSoft Corporation http://www.jaspersoft.com
008: *
009: * This library is free software; you can redistribute it and/or
010: * modify it under the terms of the GNU Lesser General Public
011: * License as published by the Free Software Foundation; either
012: * version 2.1 of the License, or (at your option) any later version.
013: *
014: * This library is distributed in the hope that it will be useful,
015: * but WITHOUT ANY WARRANTY; without even the implied warranty of
016: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017: * Lesser General Public License for more details.
018: *
019: * You should have received a copy of the GNU Lesser General Public
020: * License along with this library; if not, write to the Free Software
021: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
022: *
023: * JasperSoft Corporation
024: * 303 Second Street, Suite 450 North
025: * San Francisco, CA 94107
026: * http://www.jaspersoft.com
027: */
028: package net.sf.jasperreports.engine.fill;
029:
030: import java.io.IOException;
031:
032: import net.sf.jasperreports.engine.JRAbstractObjectFactory;
033: import net.sf.jasperreports.engine.JRChild;
034: import net.sf.jasperreports.engine.JREllipse;
035: import net.sf.jasperreports.engine.JRException;
036: import net.sf.jasperreports.engine.JRExpressionCollector;
037: import net.sf.jasperreports.engine.JRPrintElement;
038: import net.sf.jasperreports.engine.JRPrintEllipse;
039: import net.sf.jasperreports.engine.JRStyle;
040: import net.sf.jasperreports.engine.xml.JRXmlWriter;
041:
042: /**
043: * @author Teodor Danciu (teodord@users.sourceforge.net)
044: * @version $Id: JRFillEllipse.java 1357 2006-08-10 09:36:24Z lucianc $
045: */
046: public class JRFillEllipse extends JRFillGraphicElement implements
047: JREllipse {
048:
049: /**
050: *
051: */
052: protected JRFillEllipse(JRBaseFiller filler, JREllipse ellipse,
053: JRFillObjectFactory factory) {
054: super (filler, ellipse, factory);
055: }
056:
057: protected JRFillEllipse(JRFillEllipse ellipse,
058: JRFillCloneFactory factory) {
059: super (ellipse, factory);
060: }
061:
062: /**
063: *
064: */
065: protected JRTemplateEllipse getJRTemplateEllipse() {
066: JRStyle style = getStyle();
067: JRTemplateEllipse template = (JRTemplateEllipse) getTemplate(style);
068: if (template == null) {
069: template = new JRTemplateEllipse(filler.getJasperPrint()
070: .getDefaultStyleProvider(), this );
071: registerTemplate(style, template);
072: }
073: return template;
074: }
075:
076: /**
077: *
078: */
079: protected void evaluate(byte evaluation) throws JRException {
080: this .reset();
081:
082: this .evaluatePrintWhenExpression(evaluation);
083:
084: setValueRepeating(true);
085: }
086:
087: /**
088: *
089: */
090: protected JRPrintElement fill() {
091: JRPrintEllipse printEllipse = null;
092:
093: printEllipse = new JRTemplatePrintEllipse(this
094: .getJRTemplateEllipse());
095: printEllipse.setX(this .getX());
096: printEllipse.setY(this .getRelativeY());
097: printEllipse.setWidth(getWidth());
098: printEllipse.setHeight(this .getStretchHeight());
099:
100: return printEllipse;
101: }
102:
103: /**
104: *
105: */
106: public JRChild getCopy(JRAbstractObjectFactory factory) {
107: return factory.getEllipse(this );
108: }
109:
110: /**
111: *
112: */
113: public void collectExpressions(JRExpressionCollector collector) {
114: collector.collect(this );
115: }
116:
117: /**
118: *
119: */
120: public void writeXml(JRXmlWriter xmlWriter) throws IOException {
121: xmlWriter.writeEllipse(this );
122: }
123:
124: /**
125: *
126: */
127: protected void resolveElement(JRPrintElement element,
128: byte evaluation) {
129: // nothing
130: }
131:
132: public JRCloneable createClone(JRFillCloneFactory factory) {
133: return new JRFillEllipse(this, factory);
134: }
135:
136: }
|