Class RowBandingFunction
- java.lang.Object
-
- org.pentaho.reporting.engine.classic.core.function.AbstractExpression
-
- org.pentaho.reporting.engine.classic.core.function.AbstractFunction
-
- org.pentaho.reporting.engine.classic.core.function.RowBandingFunction
-
- All Implemented Interfaces:
Serializable
,Cloneable
,EventListener
,PageEventListener
,ReportListener
,Expression
,Function
,LayoutProcessorFunction
public class RowBandingFunction extends AbstractFunction implements PageEventListener, LayoutProcessorFunction
A function that alternates the background-color for each item-band within a group. If the function evaluates to true, then the background of the named element will be set to the visible-color, else it will be set to the invisible-color. The ElementVisibilitySwitchFunction defines two parameters:- element
The name of the element in the itemband that should be modified. The element(s) must be named using the "name" attribute, if no name is given here, the ItemBand's background color is defined instead.
- initial-state
The initial state of the function. (true or false) defaults to false. This is the reverse of the element's visiblity (set to false to start with an visible element, set to true to hide the element in the first itemrow).
- Author:
- Thomas Morgner, Michael D'Amour
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description RowBandingFunction()
Default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getElement()
Returns the element name.String
getGroup()
boolean
getInitialState()
Returns the initial visibility that is used on the start of a new report, a new group or a new page.Color
getInvisibleBackground()
Returns the background color that is used if the row-banding background should be invisible.Boolean
getNewPageState()
Returns the visibility state that should be used on new pages.int
getNumberOfElements()
Returns the number of rows that must be processed before the visibility can switch again.Object
getValue()
Returns the defined visibility of the element.Color
getVisibleBackground()
Returns the background color that is used if the row-banding background should be visible.void
groupStarted(ReportEvent event)
Receives notification that a group has started.boolean
isIgnoreCrosstabMode()
void
itemsAdvanced(ReportEvent event)
Triggers the visibility of an element.void
itemsStarted(ReportEvent event)
Receives notification that the items are being processed.void
pageFinished(ReportEvent event)
Receives notification that a page is completed.void
pageStarted(ReportEvent event)
Receives notification that a page has started.void
reportInitialized(ReportEvent event)
Receives notification that report generation initializes the current run.void
setElement(String name)
Sets the element name.void
setGroup(String group)
void
setIgnoreCrosstabMode(boolean ignoreCrosstabMode)
void
setInitialState(boolean initialState)
Defines the initial visibility that is used on the start of a new report, a new group or a new page.void
setInvisibleBackground(Color invisibleBackground)
Defines the background color that is used if the row-banding background should be invisible.void
setNewPageState(Boolean newPageState)
Defines the visibility state that should be used on new pages.void
setNumberOfElements(int numberOfElements)
Defines the number of rows that must be processed before the visibility can switch again.void
setVisibleBackground(Color visibleBackground)
Defines the background color that is used if the row-banding background should be visible.void
summaryRowSelection(ReportEvent event)
A crosstab specific event notifying crosstab-aware functions to select the result for the summary row cell that will be printed next.-
Methods inherited from class org.pentaho.reporting.engine.classic.core.function.AbstractFunction
groupFinished, itemsFinished, reportDone, reportFinished, reportStarted
-
Methods inherited from class org.pentaho.reporting.engine.classic.core.function.AbstractExpression
clone, getDataRow, getDependencyLevel, getInstance, getName, getReportConfiguration, getResourceBundleFactory, getRuntime, isActive, isDeepTraversing, isPreserve, setActive, setDependencyLevel, setName, setPreserve, setRuntime
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.pentaho.reporting.engine.classic.core.function.Expression
clone, getDataRow, getDependencyLevel, getInstance, getName, getReportConfiguration, getResourceBundleFactory, getRuntime, isActive, isDeepTraversing, isPreserve, setDependencyLevel, setName, setRuntime
-
Methods inherited from interface org.pentaho.reporting.engine.classic.core.event.ReportListener
groupFinished, itemsFinished, reportDone, reportFinished, reportStarted
-
-
-
-
Method Detail
-
pageStarted
public void pageStarted(ReportEvent event)
Receives notification that a page has started.- Specified by:
pageStarted
in interfacePageEventListener
- Parameters:
event
- the event.
-
pageFinished
public void pageFinished(ReportEvent event)
Receives notification that a page is completed.- Specified by:
pageFinished
in interfacePageEventListener
- Parameters:
event
- The event.
-
reportInitialized
public void reportInitialized(ReportEvent event)
Receives notification that report generation initializes the current run.The event carries a ReportState.Started state. Use this to initialize the report.
- Specified by:
reportInitialized
in interfaceReportListener
- Overrides:
reportInitialized
in classAbstractFunction
- Parameters:
event
- The event.
-
itemsStarted
public void itemsStarted(ReportEvent event)
Receives notification that the items are being processed. Sets the function value to false.Following this event, there will be a sequence of itemsAdvanced events until the itemsFinished event is raised.
- Specified by:
itemsStarted
in interfaceReportListener
- Overrides:
itemsStarted
in classAbstractFunction
- Parameters:
event
- Information about the event.
-
itemsAdvanced
public void itemsAdvanced(ReportEvent event)
Triggers the visibility of an element. If the named element was visible at the last itemsAdvanced call, it gets now invisible and vice versa. This creates the effect, that an element is printed every other line.- Specified by:
itemsAdvanced
in interfaceReportListener
- Overrides:
itemsAdvanced
in classAbstractFunction
- Parameters:
event
- the report event.
-
groupStarted
public void groupStarted(ReportEvent event)
Description copied from class:AbstractFunction
Receives notification that a group has started.- Specified by:
groupStarted
in interfaceReportListener
- Overrides:
groupStarted
in classAbstractFunction
- Parameters:
event
- the event.
-
summaryRowSelection
public void summaryRowSelection(ReportEvent event)
Description copied from class:AbstractFunction
A crosstab specific event notifying crosstab-aware functions to select the result for the summary row cell that will be printed next.- Specified by:
summaryRowSelection
in interfaceReportListener
- Overrides:
summaryRowSelection
in classAbstractFunction
- Parameters:
event
- The report event.
-
isIgnoreCrosstabMode
public boolean isIgnoreCrosstabMode()
-
setIgnoreCrosstabMode
public void setIgnoreCrosstabMode(boolean ignoreCrosstabMode)
-
getInvisibleBackground
public Color getInvisibleBackground()
Returns the background color that is used if the row-banding background should be invisible.- Returns:
- a color.
-
setInvisibleBackground
public void setInvisibleBackground(Color invisibleBackground)
Defines the background color that is used if the row-banding background should be invisible.- Parameters:
invisibleBackground
- a color.
-
getVisibleBackground
public Color getVisibleBackground()
Returns the background color that is used if the row-banding background should be visible.- Returns:
- a color.
-
setVisibleBackground
public void setVisibleBackground(Color visibleBackground)
Defines the background color that is used if the row-banding background should be visible.- Parameters:
visibleBackground
- a color.
-
getNumberOfElements
public int getNumberOfElements()
Returns the number of rows that must be processed before the visibility can switch again.- Returns:
- a row count.
-
setNumberOfElements
public void setNumberOfElements(int numberOfElements)
Defines the number of rows that must be processed before the visibility can switch again.- Parameters:
numberOfElements
- a row count.
-
getInitialState
public boolean getInitialState()
Returns the initial visibility that is used on the start of a new report, a new group or a new page.- Returns:
- the initial value for the trigger.
-
setInitialState
public void setInitialState(boolean initialState)
Defines the initial visibility that is used on the start of a new report, a new group or a new page.- Parameters:
initialState
- the initial value for the trigger.
-
setElement
public void setElement(String name)
Sets the element name. The name denotes an element or band within the root-band or the root-band itself. It is possible to define multiple elements with the same name to apply the modification to all of these elements.- Parameters:
name
- The element name.- See Also:
FunctionUtilities.findAllElements(org.pentaho.reporting .engine.classic.core.Band, String)
-
getElement
public String getElement()
Returns the element name.- Returns:
- The element name.
- See Also:
setElement(String)
-
getGroup
public String getGroup()
-
setGroup
public void setGroup(String group)
-
getNewPageState
public Boolean getNewPageState()
Returns the visibility state that should be used on new pages. This is only used if resetOnPageStart is set to true. If this value is not defined, the initialState is used.- Returns:
- the state on new pages.
-
setNewPageState
public void setNewPageState(Boolean newPageState)
Defines the visibility state that should be used on new pages. This is only used if resetOnPageStart is set to true. If this value is not defined, the initialState is used.- Parameters:
newPageState
- the state on new pages or null to use the initialState.
-
getValue
public Object getValue()
Returns the defined visibility of the element. Returns either true or false as java.lang.Boolean.- Specified by:
getValue
in interfaceExpression
- Returns:
- the visibility of the element, either Boolean.TRUE or Boolean.FALSE.
-
-