/projects/jasperreports-3.7.4/src/net/sf/jasperreports/engine/export/draw/TextDrawer.java
https://gitlab.com/essere.lab.public/qualitas.class-corpus · Java · 203 lines · 120 code · 27 blank · 56 comment · 6 complexity · cee8070df89d5266035df2efc58b6c8d MD5 · raw file
- /*
- * 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/>.
- */
- /*
- * Contributors:
- * Eugene D - eugenedruy@users.sourceforge.net
- * Adrian Jackson - iapetus@users.sourceforge.net
- * David Taylor - exodussystems@users.sourceforge.net
- * Lars Kristensen - llk@users.sourceforge.net
- */
- package net.sf.jasperreports.engine.export.draw;
- import java.awt.Graphics2D;
- import net.sf.jasperreports.engine.JRCommonText;
- import net.sf.jasperreports.engine.JRPrintElement;
- import net.sf.jasperreports.engine.JRPrintText;
- import net.sf.jasperreports.engine.JRStyledTextAttributeSelector;
- import net.sf.jasperreports.engine.export.TextRenderer;
- import net.sf.jasperreports.engine.type.ModeEnum;
- import net.sf.jasperreports.engine.util.JRStyledText;
- /**
- * @author Teodor Danciu (teodord@users.sourceforge.net)
- * @version $Id: TextDrawer.java 3653 2010-03-30 16:12:52Z teodord $
- */
- public class TextDrawer extends ElementDrawer
- {
- /**
- *
- */
- protected TextRenderer textRenderer = null;
-
- /**
- *
- */
- public TextDrawer(
- TextRenderer textRenderer
- )
- {
- this.textRenderer = textRenderer;
- }
-
-
- /**
- *
- */
- public void draw(Graphics2D grx, JRPrintElement element, int offsetX, int offsetY)
- {
- JRPrintText text = (JRPrintText)element;
- JRStyledText styledText = getStyledText(text);
-
- if (styledText == null)
- {
- return;
- }
- String allText = styledText.getText();
-
- int x = text.getX() + offsetX;
- int y = text.getY() + offsetY;
- int width = text.getWidth();
- int height = text.getHeight();
- int topPadding = text.getLineBox().getTopPadding().intValue();
- int leftPadding = text.getLineBox().getLeftPadding().intValue();
- int bottomPadding = text.getLineBox().getBottomPadding().intValue();
- int rightPadding = text.getLineBox().getRightPadding().intValue();
-
- double angle = 0;
-
- switch (text.getRotationValue())
- {
- case LEFT :
- {
- y = text.getY() + offsetY + text.getHeight();
- width = text.getHeight();
- height = text.getWidth();
- int tmpPadding = topPadding;
- topPadding = leftPadding;
- leftPadding = bottomPadding;
- bottomPadding = rightPadding;
- rightPadding = tmpPadding;
- angle = - Math.PI / 2;
- break;
- }
- case RIGHT :
- {
- x = text.getX() + offsetX + text.getWidth();
- width = text.getHeight();
- height = text.getWidth();
- int tmpPadding = topPadding;
- topPadding = rightPadding;
- rightPadding = bottomPadding;
- bottomPadding = leftPadding;
- leftPadding = tmpPadding;
- angle = Math.PI / 2;
- break;
- }
- case UPSIDE_DOWN :
- {
- int tmpPadding = topPadding;
- x = text.getX() + offsetX + text.getWidth();
- y = text.getY() + offsetY + text.getHeight();
- topPadding = bottomPadding;
- bottomPadding = tmpPadding;
- tmpPadding = leftPadding;
- leftPadding = rightPadding;
- rightPadding = tmpPadding;
- angle = Math.PI;
- break;
- }
- case NONE :
- default :
- {
- }
- }
-
- grx.rotate(angle, x, y);
- if (text.getModeValue() == ModeEnum.OPAQUE)
- {
- grx.setColor(text.getBackcolor());
- grx.fillRect(x, y, width, height);
- }
- // else
- // {
- // /*
- // grx.setColor(text.getForecolor());
- // grx.setStroke(new BasicStroke(1));
- // grx.drawRect(x, y, width, height);
- // */
- // }
- if (allText.length() > 0)
- {
- grx.setColor(text.getForecolor());
- /* */
- textRenderer.render(
- grx,
- x,
- y,
- width,
- height,
- topPadding,
- leftPadding,
- bottomPadding,
- rightPadding,
- text.getTextHeight(),
- text.getHorizontalAlignmentValue(),
- text.getVerticalAlignmentValue(),
- text.getLineSpacingFactor(),
- text.getLeadingOffset(),
- text.getFontSize(),
- !JRCommonText.MARKUP_NONE.equals(text.getMarkup()),
- styledText,
- allText
- );
-
- }
-
- grx.rotate(-angle, x, y);
- /* */
- drawBox(grx, text.getLineBox(), text, offsetX, offsetY);
- }
-
- /**
- *
- */
- protected JRStyledText getStyledText(JRPrintText textElement)
- {
- return textElement.getStyledText(JRStyledTextAttributeSelector.NO_BACKCOLOR);
- }
-
- }