net.sf.jasperreports.engine.JRTextElement Maven / Gradle / Ivy
Show all versions of jasperreports Show documentation
/*
* JasperReports - Free Java Reporting Library.
* Copyright (C) 2001 - 2019 TIBCO Software Inc. 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 .
*/
package net.sf.jasperreports.engine;
import net.sf.jasperreports.annotations.properties.Property;
import net.sf.jasperreports.annotations.properties.PropertyScope;
import net.sf.jasperreports.engine.util.JRStyledTextUtil;
import net.sf.jasperreports.properties.PropertyConstants;
/**
* An abstract representation of a report text element. It provides basic functionality for static texts and text fields.
*
* @author Teodor Danciu ([email protected])
*/
public interface JRTextElement extends JRElement, JRTextAlignment, JRFont, JRCommonText
{
/**
* Property used to determine whether the fill process must preserve the original text
* for text elements that are not able to fit their entire contents.
*
*
* When this property is set, the engine saves the original text in the
* {@link JRPrintText print text object} along with the index at which the
* text is to be truncated by the print object.
*
*
*
* This property can be set at the following levels (listed in the order of precedence):
*
* - at {@link JRTextElement text element} level
* - at {@link JRReport report} level
* - globally in jasperreports.properties or via {@link JRPropertiesUtil}
*
*
*
* @see JRPrintText#getFullText()
* @see JRStyledTextUtil#getTruncatedText(JRPrintText)
* @see JRPrintText#getTextTruncateIndex()
*/
@Property(
category = PropertyConstants.CATEGORY_FILL,
defaultValue = PropertyConstants.BOOLEAN_FALSE,
scopes = {PropertyScope.CONTEXT, PropertyScope.REPORT, PropertyScope.TEXT_ELEMENT},
sinceVersion = PropertyConstants.VERSION_2_0_3,
valueType = Boolean.class
)
public static final String PROPERTY_PRINT_KEEP_FULL_TEXT = JRPropertiesUtil.PROPERTY_PREFIX + "print.keep.full.text";
/**
* Boolean property that determines whether text elements are to be truncated
* at the last character that fits.
*
*
* By default, when the entire text of a text element does not fit the element's area,
* the text is truncated at the last word that fits the area.
* This property can instruct the engine to truncate the text at the last character
* that fits.
*
*
*
* The property can be set at the same levels as {@link #PROPERTY_PRINT_KEEP_FULL_TEXT}.
*
*/
@Property(
category = PropertyConstants.CATEGORY_FILL,
defaultValue = PropertyConstants.BOOLEAN_FALSE,
scopes = {PropertyScope.CONTEXT, PropertyScope.REPORT, PropertyScope.TEXT_ELEMENT},
sinceVersion = PropertyConstants.VERSION_2_0_3,
valueType = Boolean.class
)
public static final String PROPERTY_TRUNCATE_AT_CHAR = JRPropertiesUtil.PROPERTY_PREFIX + "text.truncate.at.char";
/**
* Property whose value is used as a suffix for the truncated text.
*
*
* The suffix is appended to the text when truncation occurs.
* If the property is not defined or empty (which is the case by default),
* no suffix will be used when the text is truncated.
*
*
*
* The property can be set at the same levels as {@link #PROPERTY_PRINT_KEEP_FULL_TEXT}.
*
*/
@Property(
category = PropertyConstants.CATEGORY_FILL,
defaultValue = "empty string",
scopes = {PropertyScope.CONTEXT, PropertyScope.REPORT, PropertyScope.TEXT_ELEMENT},
sinceVersion = PropertyConstants.VERSION_2_0_3
)
public static final String PROPERTY_TRUNCATE_SUFFIX = JRPropertiesUtil.PROPERTY_PREFIX + "text.truncate.suffix";
/**
* Boolean property that determines whether the positions where text line
* break occurs are to be saved during report fill in oder to be used at
* export time.
*
*
* At report fill time, each text element is measured in order to determine
* how long it needs to stretch or where it needs to be truncated.
* During this measurement, the text wraps at certain positions in order to
* fit the text element defined width.
*
*
* Setting this property to true instructs the engine to save the positions
* at which line breaks occur in the generated print element.
* The positions can be used by report exporters that want to enforce line
* breaks to occur at exactly the same position as they did during text
* measurement at fill time.
*
*
* Currently, the HTML exporter will make use of the saved line break
* positions by introducing explicit line breaks.
*
*
* The property can be set globally, at report level or at text element level.
*
* @see JRPrintText#getLineBreakOffsets()
*/
@Property(
category = PropertyConstants.CATEGORY_FILL,
defaultValue = PropertyConstants.BOOLEAN_FALSE,
scopes = {PropertyScope.CONTEXT, PropertyScope.REPORT, PropertyScope.TEXT_ELEMENT},
sinceVersion = PropertyConstants.VERSION_3_5_1,
valueType = Boolean.class
)
public static final String PROPERTY_SAVE_LINE_BREAKS = JRPropertiesUtil.PROPERTY_PREFIX
+ "text.save.line.breaks";
}