All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.jasperreports.engine.JRTextElement Maven / Gradle / Ivy

There is a newer version: 6.21.3
Show newest version
/*
 * JasperReports - Free Java Reporting Library.
 * Copyright (C) 2001 - 2022 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"; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy