Class JRBaseElement

java.lang.Object
net.sf.jasperreports.engine.base.JRBaseElement
All Implemented Interfaces:
Serializable, Cloneable, JRChangeEventsSupport, JRChild, JRCloneable, JRCommonElement, JRElement, JRIdentifiable, JRPropertiesHolder, JRStyleContainer, JRVisitable
Direct Known Subclasses:
JRBaseBreak, JRBaseChart, JRBaseComponentElement, JRBaseCrosstab, JRBaseFrame, JRBaseGenericElement, JRBaseGraphicElement, JRBaseSubreport, JRBaseTextElement, JRDesignElement

public abstract class JRBaseElement extends Object implements JRElement, Serializable, JRChangeEventsSupport
This class provides a skeleton implementation for a report element. It mostly provides internal variables, representing the most common element properties, and their getter/setter methods. It also has a constructor for initializing these properties.
Author:
Teodor Danciu (teodord@users.sourceforge.net)
See Also:
  • Field Details

    • PROPERTY_POSITION_TYPE

      public static final String PROPERTY_POSITION_TYPE
      See Also:
    • PROPERTY_PRINT_IN_FIRST_WHOLE_BAND

      public static final String PROPERTY_PRINT_IN_FIRST_WHOLE_BAND
      See Also:
    • PROPERTY_PRINT_REPEATED_VALUES

      public static final String PROPERTY_PRINT_REPEATED_VALUES
      See Also:
    • PROPERTY_PRINT_WHEN_DETAIL_OVERFLOWS

      public static final String PROPERTY_PRINT_WHEN_DETAIL_OVERFLOWS
      See Also:
    • PROPERTY_REMOVE_LINE_WHEN_BLANK

      public static final String PROPERTY_REMOVE_LINE_WHEN_BLANK
      See Also:
    • PROPERTY_STRETCH_TYPE

      public static final String PROPERTY_STRETCH_TYPE
      See Also:
    • PROPERTY_WIDTH

      public static final String PROPERTY_WIDTH
      See Also:
    • PROPERTY_X

      public static final String PROPERTY_X
      See Also:
    • uuid

      protected UUID uuid
    • key

      protected String key
    • positionType

      protected PositionTypeEnum positionType
    • stretchType

      protected StretchTypeEnum stretchType
    • isPrintRepeatedValues

      protected boolean isPrintRepeatedValues
    • mode

      protected ModeEnum mode
    • x

      protected int x
    • y

      protected int y
    • width

      protected int width
    • height

      protected int height
    • isRemoveLineWhenBlank

      protected boolean isRemoveLineWhenBlank
    • isPrintInFirstWholeBand

      protected boolean isPrintInFirstWholeBand
    • isPrintWhenDetailOverflows

      protected boolean isPrintWhenDetailOverflows
    • forecolor

      protected Color forecolor
    • backcolor

      protected Color backcolor
    • printWhenExpression

      protected JRExpression printWhenExpression
    • printWhenGroupChanges

      protected String printWhenGroupChanges
    • elementGroup

      protected JRElementGroup elementGroup
    • defaultStyleProvider

      protected final JRDefaultStyleProvider defaultStyleProvider
    • parentStyle

      protected JRStyle parentStyle
    • parentStyleNameReference

      protected String parentStyleNameReference
    • styleExpression

      protected JRExpression styleExpression
  • Constructor Details

    • JRBaseElement

      protected JRBaseElement(JRDefaultStyleProvider defaultStyleProvider)
    • JRBaseElement

      protected JRBaseElement(JRElement element, JRBaseObjectFactory factory)
      Initializes basic properties of the element.
      Parameters:
      element - an element whose properties are copied to this element. Usually it is a JRDesignElement that must be transformed into an JRBaseElement at compile time.
      factory - a factory used in the compile process
  • Method Details

    • getDefaultStyleProvider

      public JRDefaultStyleProvider getDefaultStyleProvider()
      Specified by:
      getDefaultStyleProvider in interface JRStyleContainer
    • getStyleResolver

      protected StyleResolver getStyleResolver()
    • getBaseStyle

      protected JRStyle getBaseStyle()
    • getUUID

      public UUID getUUID()
      Specified by:
      getUUID in interface JRIdentifiable
    • setUUID

      public void setUUID(UUID uuid)
    • getKey

      public String getKey()
      Description copied from interface: JRCommonElement
      Returns the string value that uniquely identifies the element.
      Specified by:
      getKey in interface JRCommonElement
    • getPositionType

      public PositionTypeEnum getPositionType()
      Description copied from interface: JRElement
      Returns the position type for the element
      Specified by:
      getPositionType in interface JRElement
      Returns:
      the position type
    • setPositionType

      public void setPositionType(PositionTypeEnum positionType)
      Description copied from interface: JRElement
      Sets the position type for the element.
      Specified by:
      setPositionType in interface JRElement
      Parameters:
      positionType - the position type
    • getStretchType

      public StretchTypeEnum getStretchType()
      Description copied from interface: JRElement
      Indicates the stretch type for the element
      Specified by:
      getStretchType in interface JRElement
      Returns:
      a value representing one of the stretch type constants in StretchTypeEnum
    • setStretchType

      public void setStretchType(StretchTypeEnum stretchType)
      Description copied from interface: JRElement
      Specifies how the engine should treat a missing image.
      Specified by:
      setStretchType in interface JRElement
      Parameters:
      stretchType - a value representing one of the stretch type constants in StretchTypeEnum
    • isPrintRepeatedValues

      public boolean isPrintRepeatedValues()
      Description copied from interface: JRElement
      Specifies if the element value will be printed for every iteration, even if its value has not changed.
      Specified by:
      isPrintRepeatedValues in interface JRElement
      See Also:
    • setPrintRepeatedValues

      public void setPrintRepeatedValues(boolean isPrintRepeatedValues)
      Specified by:
      setPrintRepeatedValues in interface JRElement
    • getMode

      public ModeEnum getMode()
      Description copied from interface: JRCommonElement
      Returns the element transparency mode. The default value depends on the type of the report element. Graphic elements like rectangles and lines are opaque by default, but the images are transparent. Both static texts and text fields are transparent by default, and so are the subreport elements.
      Specified by:
      getMode in interface JRCommonElement
    • getOwnMode

      public ModeEnum getOwnMode()
      Specified by:
      getOwnMode in interface JRCommonElement
    • setMode

      public void setMode(ModeEnum mode)
      Description copied from interface: JRCommonElement
      Sets the element transparency mode.
      Specified by:
      setMode in interface JRCommonElement
    • getX

      public int getX()
      Description copied from interface: JRElement
      Gets the the section relative horizontal offset of the element top left corner.
      Specified by:
      getX in interface JRElement
    • setX

      public void setX(int x)
      Description copied from interface: JRElement
      Sets the the section relative horizontal offset of the element top left corner.
      Specified by:
      setX in interface JRElement
    • getY

      public int getY()
      Description copied from interface: JRElement
      Gets the the section relative vertical offset of the element top left corner.
      Specified by:
      getY in interface JRElement
    • getWidth

      public int getWidth()
      Specified by:
      getWidth in interface JRCommonElement
    • setWidth

      public void setWidth(int width)
      Specified by:
      setWidth in interface JRElement
    • getHeight

      public int getHeight()
      Specified by:
      getHeight in interface JRCommonElement
    • isRemoveLineWhenBlank

      public boolean isRemoveLineWhenBlank()
      Description copied from interface: JRElement
      Returns true if the remaining blank space appearing when the value is not printed will be removed. Under certain circumstances (the element has an empty string as its value or contains a repeated value that is supressed) the space reserved for the current element remains empty. If this method returns true, it means the engine will try to suppress the blank line, but will only succeed if no other elements occupy the same vertical space.
      Specified by:
      isRemoveLineWhenBlank in interface JRElement
    • setRemoveLineWhenBlank

      public void setRemoveLineWhenBlank(boolean isRemoveLine)
      Description copied from interface: JRElement
      Specifies whether the remaining blank space appearing when the value is not printed will be removed. Under certain circumstances (the element has an empty string as its value or contains a repeated value that is supressed) the space reserved for the current element remains empty. If the parameter is set to true, it means the engine will try to suppress the blank line, but will only succeed if no other elements occupy the same vertical space.
      Specified by:
      setRemoveLineWhenBlank in interface JRElement
    • isPrintInFirstWholeBand

      public boolean isPrintInFirstWholeBand()
      Description copied from interface: JRElement
      Returns true if an element with a printRepeatedValues attribute set to true will be redisplayed for every new page or column that is not an overflow from a previous page or column.
      Specified by:
      isPrintInFirstWholeBand in interface JRElement
      See Also:
    • setPrintInFirstWholeBand

      public void setPrintInFirstWholeBand(boolean isPrint)
      Description copied from interface: JRElement
      Specifies whether an element with a printRepeatedValues attribute set to true should be redisplayed for every new page or column that is not an overflow from a previous page or column.
      Specified by:
      setPrintInFirstWholeBand in interface JRElement
      See Also:
    • isPrintWhenDetailOverflows

      public boolean isPrintWhenDetailOverflows()
      Description copied from interface: JRElement
      If this is set to true, the element will be reprinted on the next page if the band does not fit in the current page. Actually if there is at least one element with this attribute, the band is redisplayed from the beginning, except those elements that fitted in the current page and have isPrintWhenDetailOverflow set to false.
      Specified by:
      isPrintWhenDetailOverflows in interface JRElement
    • setPrintWhenDetailOverflows

      public void setPrintWhenDetailOverflows(boolean isPrint)
      Description copied from interface: JRElement
      If this is set to true, the element will be reprinted on the next page if the band does not fit in the current page. Actually if there is at least one element with this attribute, the band is redisplayed from the beginning, except those elements that fitted in the current page and have isPrintWhenDetailOverflow set to false.
      Specified by:
      setPrintWhenDetailOverflows in interface JRElement
    • getForecolor

      public Color getForecolor()
      Specified by:
      getForecolor in interface JRCommonElement
    • getOwnForecolor

      public Color getOwnForecolor()
      Specified by:
      getOwnForecolor in interface JRCommonElement
    • setForecolor

      public void setForecolor(Color forecolor)
      Specified by:
      setForecolor in interface JRCommonElement
    • getBackcolor

      public Color getBackcolor()
      Specified by:
      getBackcolor in interface JRCommonElement
    • getOwnBackcolor

      public Color getOwnBackcolor()
      Specified by:
      getOwnBackcolor in interface JRCommonElement
    • setBackcolor

      public void setBackcolor(Color backcolor)
      Specified by:
      setBackcolor in interface JRCommonElement
    • getPrintWhenExpression

      public JRExpression getPrintWhenExpression()
      Description copied from interface: JRElement
      Gets the expression that is evaluated in order to decide if the element should be displayed. This expression always returns a boolean value.
      Specified by:
      getPrintWhenExpression in interface JRElement
    • getPrintWhenGroupChanges

      public String getPrintWhenGroupChanges()
      Description copied from interface: JRElement
      Returns the group for which an element with a printRepeatedValues attribute set to true will be redisplayed even if the value has not changed.
      Specified by:
      getPrintWhenGroupChanges in interface JRElement
      See Also:
    • getElementGroup

      public JRElementGroup getElementGroup()
      Description copied from interface: JRElement
      Indicates the logical group that the element belongs to. More elements can be grouped in order to make some of them stretch relative to the height of their parent group.
      Specified by:
      getElementGroup in interface JRElement
      See Also:
    • getStyle

      public JRStyle getStyle()
      Description copied from interface: JRStyleContainer
      Returns this object's style.
      Specified by:
      getStyle in interface JRStyleContainer
      Returns:
      this object's style
    • getStyleNameReference

      public String getStyleNameReference()
      Description copied from interface: JRStyleContainer
      Returns the name of an external style which is to be used by this object.

      External styles are defined in templates and are resolved at fill time. This attribute is only effective if no direct style (as returned by getStyle() is specified for this object.

      Specified by:
      getStyleNameReference in interface JRStyleContainer
      Returns:
      the name of an external style
    • getStyleExpression

      public JRExpression getStyleExpression()
      Description copied from interface: JRElement
      Gets the expression that is evaluated in order to obtain the runtime style name to be used for the element. When used, this expression takes precedence over the JRStyleContainer.getStyle() or JRStyleContainer.getStyleNameReference().
      Specified by:
      getStyleExpression in interface JRElement
    • getEventSupport

      public JRPropertyChangeSupport getEventSupport()
      Description copied from interface: JRChangeEventsSupport
      Returns the property change support object for this instance.
      Specified by:
      getEventSupport in interface JRChangeEventsSupport
      Returns:
      the property change support object for this instance
    • clone

      public Object clone()
      Specified by:
      clone in interface JRCloneable
      Overrides:
      clone in class Object
    • clone

      public Object clone(JRElementGroup parentGroup)
      Specified by:
      clone in interface JRChild
    • clone

      public JRElement clone(JRElementGroup parentGroup, int y)
      Specified by:
      clone in interface JRElement
    • hasProperties

      public boolean hasProperties()
      Description copied from interface: JRPropertiesHolder
      Checks whether the object has any properties.
      Specified by:
      hasProperties in interface JRPropertiesHolder
      Returns:
      whether the object has any properties
    • getPropertiesMap

      public JRPropertiesMap getPropertiesMap()
      Description copied from interface: JRPropertiesHolder
      Returns this object's properties map.
      Specified by:
      getPropertiesMap in interface JRPropertiesHolder
      Returns:
      this object's properties map
    • getParentProperties

      public JRPropertiesHolder getParentProperties()
      Description copied from interface: JRPropertiesHolder
      Returns the parent properties holder, whose properties are used as defaults for this object.
      Specified by:
      getParentProperties in interface JRPropertiesHolder
      Returns:
      the parent properties holder, or null if no parent
    • getPropertyExpressions

      public JRPropertyExpression[] getPropertyExpressions()
      Description copied from interface: JRElement
      Returns the list of dynamic/expression-based properties for this report element.
      Specified by:
      getPropertyExpressions in interface JRElement
      Returns:
      an array containing the expression-based properties of this report element