org.pentaho.reporting.engine.classic.core.function
Class RowBandingFunction

java.lang.Object
  extended by org.pentaho.reporting.engine.classic.core.function.AbstractExpression
      extended by org.pentaho.reporting.engine.classic.core.function.AbstractFunction
          extended by 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:

Author:
Thomas Morgner, Michael D'Amour
See Also:
Serialized Form

Constructor Summary
RowBandingFunction()
          Default constructor.
 
Method Summary
 String getElement()
          Returns the element name.
 boolean getInitialState()
          Returns the initial visibility that is used on the start of a new report, a new group or a new page.
 boolean getInitialTriggerValue()
          Deprecated. use getInitialState instead.
 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 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 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.
 
Methods inherited from class org.pentaho.reporting.engine.classic.core.function.AbstractFunction
groupFinished, groupStarted, 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, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.pentaho.reporting.engine.classic.core.event.ReportListener
groupFinished, groupStarted, itemsFinished, reportDone, reportFinished, reportStarted
 
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
 

Constructor Detail

RowBandingFunction

public RowBandingFunction()
Default constructor.

Method Detail

pageStarted

public void pageStarted(ReportEvent event)
Receives notification that a page has started.

Specified by:
pageStarted in interface PageEventListener
Parameters:
event - the event.

pageFinished

public void pageFinished(ReportEvent event)
Receives notification that a page is completed.

Specified by:
pageFinished in interface PageEventListener
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 interface ReportListener
Overrides:
reportInitialized in class AbstractFunction
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 interface ReportListener
Overrides:
itemsStarted in class AbstractFunction
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 interface ReportListener
Overrides:
itemsAdvanced in class AbstractFunction
Parameters:
event - the report event.

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.

getInitialTriggerValue

public boolean getInitialTriggerValue()
Deprecated. use getInitialState instead.

Gets the initial value for the visible trigger, either "true" or "false".

Returns:
the initial value for the trigger.

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)

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 interface Expression
Returns:
the visibility of the element, either Boolean.TRUE or Boolean.FALSE.