net.sf.jasperreports.crosstabs.design
Class JRDesignCrosstab

java.lang.Object
  extended by net.sf.jasperreports.engine.base.JRBaseElement
      extended by net.sf.jasperreports.engine.design.JRDesignElement
          extended by net.sf.jasperreports.crosstabs.design.JRDesignCrosstab
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, JRCrosstab, JRChangeEventsSupport, JRBoxContainer, JRChild, JRCloneable, JRCommonElement, JRElement, JRIdentifiable, JRPropertiesHolder, JRStyleContainer, JRVisitable

public class JRDesignCrosstab
extends JRDesignElement
implements JRCrosstab

Design-time crosstab implementation.

Version:
$Id: JRDesignCrosstab.java 5180 2012-03-29 13:23:12Z teodord $
Author:
Lucian Chirita (lucianc@users.sourceforge.net)
See Also:
Serialized Form

Field Summary
protected  java.util.List<JRCrosstabCell> cellsList
           
protected  java.util.Map<Pair<java.lang.String,java.lang.String>,JRCrosstabCell> cellsMap
           
protected  int columnBreakOffset
           
protected  java.util.List<JRCrosstabColumnGroup> columnGroups
           
protected  java.util.Map<java.lang.String,java.lang.Integer> columnGroupsMap
           
protected  JRDesignCrosstabCell[][] crossCells
           
protected  JRDesignCrosstabDataset dataset
           
protected  JRDesignCellContents headerCell
           
protected  java.lang.Boolean ignoreWidth
           
protected  JRLineBox lineBox
           
protected  java.util.List<JRCrosstabMeasure> measures
           
protected  java.util.Map<java.lang.String,java.lang.Integer> measuresMap
           
protected  java.util.List<JRCrosstabParameter> parametersList
           
protected  java.util.Map<java.lang.String,JRCrosstabParameter> parametersMap
           
protected  JRExpression parametersMapExpression
           
static java.lang.String PROPERTY_CELLS
           
static java.lang.String PROPERTY_COLUMN_BREAK_OFFSET
           
static java.lang.String PROPERTY_COLUMN_GROUPS
           
static java.lang.String PROPERTY_DATASET
           
static java.lang.String PROPERTY_HEADER_CELL
           
static java.lang.String PROPERTY_IGNORE_WIDTH
           
static java.lang.String PROPERTY_MEASURES
           
static java.lang.String PROPERTY_PARAMETERS
           
static java.lang.String PROPERTY_PARAMETERS_MAP_EXPRESSION
           
static java.lang.String PROPERTY_REPEAT_COLUMN_HEADERS
           
static java.lang.String PROPERTY_REPEAT_ROW_HEADERS
           
static java.lang.String PROPERTY_ROW_GROUPS
           
static java.lang.String PROPERTY_WHEN_NO_DATA_CELL
           
protected  boolean repeatColumnHeaders
           
protected  boolean repeatRowHeaders
           
protected  java.util.List<JRCrosstabRowGroup> rowGroups
           
protected  java.util.Map<java.lang.String,java.lang.Integer> rowGroupsMap
           
protected  RunDirectionEnum runDirectionValue
           
protected  org.apache.commons.collections.SequencedHashMap variablesList
           
protected  JRDesignCellContents whenNoDataCell
           
 
Fields inherited from class net.sf.jasperreports.engine.design.JRDesignElement
PROPERTY_ELEMENT_GROUP, PROPERTY_HEIGHT, PROPERTY_KEY, PROPERTY_PARENT_STYLE, PROPERTY_PARENT_STYLE_NAME_REFERENCE, PROPERTY_PRINT_WHEN_EXPRESSION, PROPERTY_PRINT_WHEN_GROUP_CHANGES, PROPERTY_PROPERTY_EXPRESSIONS, PROPERTY_Y
 
Fields inherited from class net.sf.jasperreports.engine.base.JRBaseElement
backcolor, defaultStyleProvider, elementGroup, forecolor, height, isPrintInFirstWholeBand, isPrintRepeatedValues, isPrintWhenDetailOverflows, isRemoveLineWhenBlank, key, modeValue, parentStyle, parentStyleNameReference, positionTypeValue, printWhenExpression, printWhenGroupChanges, PROPERTY_POSITION_TYPE, PROPERTY_PRINT_IN_FIRST_WHOLE_BAND, PROPERTY_PRINT_REPEATED_VALUES, PROPERTY_PRINT_WHEN_DETAIL_OVERFLOWS, PROPERTY_REMOVE_LINE_WHEN_BLANK, PROPERTY_STRETCH_TYPE, PROPERTY_WIDTH, PROPERTY_X, stretchTypeValue, uuid, width, x, y
 
Fields inherited from interface net.sf.jasperreports.crosstabs.JRCrosstab
DEFAULT_COLUMN_BREAK_OFFSET, VARIABLE_COLUMN_COUNT, VARIABLE_ROW_COUNT
 
Constructor Summary
JRDesignCrosstab()
          Creates a new crosstab.
JRDesignCrosstab(JRDefaultStyleProvider defaultStyleProvider)
          Creates a new crosstab.
 
Method Summary
 void addCell(JRDesignCrosstabCell cell)
          Adds a data cell to the crosstab.
protected  void addColGroupVars(JRDesignCrosstabColumnGroup colGroup)
           
 void addColumnGroup(int index, JRDesignCrosstabColumnGroup group)
          Adds a column group.
 void addColumnGroup(JRDesignCrosstabColumnGroup group)
          Adds a column group.
 void addMeasure(int index, JRDesignCrosstabMeasure measure)
          Adds a measure to the crosstab.
 void addMeasure(JRDesignCrosstabMeasure measure)
          Adds a measure to the crosstab.
protected  void addMeasureVars(JRDesignCrosstabMeasure measure)
           
 void addParameter(int index, JRCrosstabParameter parameter)
          Adds a parameter to the crosstab.
 void addParameter(JRCrosstabParameter parameter)
          Adds a parameter to the crosstab.
 void addRowGroup(int index, JRDesignCrosstabRowGroup group)
          Adds a row group.
 void addRowGroup(JRDesignCrosstabRowGroup group)
          Adds a row group.
protected  void addRowGroupVars(JRDesignCrosstabRowGroup rowGroup)
           
protected  void addTotalVar(JRCrosstabMeasure measure, JRCrosstabRowGroup rowGroup, JRCrosstabColumnGroup colGroup)
           
protected  int calculateColumnHeadersSizes()
           
protected  int calculateRowHeadersSizes()
           
protected  void calculateSizes()
           
 java.lang.Object clone()
           
 void collectExpressions(JRExpressionCollector collector)
           
protected  void createCellMatrix()
           
 JRCrosstabCell[][] getCells()
          Returns the data cell matrix.
 java.util.List<JRCrosstabCell> getCellsList()
          Returns the data cells list.
 java.util.Map<Pair<java.lang.String,java.lang.String>,JRCrosstabCell> getCellsMap()
          Returns the crosstab cells indexed by corresponding row total group/ column total group pairs.
 int getColumnBreakOffset()
          Returns the column break offset.
protected  JRDesignCrosstabColumnGroup getColumnGroup(int columnGroupIndex)
           
 java.util.Map<java.lang.String,java.lang.Integer> getColumnGroupIndicesMap()
           
 JRCrosstabColumnGroup[] getColumnGroups()
          Returns the column groups of the crosstab.
 java.util.List<JRCrosstabColumnGroup> getColumnGroupsList()
           
 JRCrosstabDataset getDataset()
          Returns the input dataset of the crosstab.
 java.awt.Color getDefaultLineColor()
           
 JRDesignCrosstabDataset getDesignDataset()
          Returns the crosstab dataset object to be used for report designing.
 JRElement getElementByKey(java.lang.String elementKey)
          Searches for an element inside all crosstab cells.
 JRCellContents getHeaderCell()
          Returns a cell which will be rendered at the upper-left corner of the crosstab.
 int getId()
          The ID of the crosstab is only generated at compile time.
 java.lang.Boolean getIgnoreWidth()
          Returns the ignore width flag for the crosstab.
 JRLineBox getLineBox()
           
 java.util.Map<java.lang.String,java.lang.Integer> getMeasureIndicesMap()
           
 JRCrosstabMeasure[] getMeasures()
          Returns the crosstab measures.
 java.util.List<JRCrosstabMeasure> getMesuresList()
           
 ModeEnum getModeValue()
          Returns the element transparency mode.
 JRCrosstabParameter[] getParameters()
          Returns the crosstab parameters.
 java.util.List<JRCrosstabParameter> getParametersList()
          Returns the paremeters list.
 java.util.Map<java.lang.String,JRCrosstabParameter> getParametersMap()
          Returns the parameters indexed by names.
 JRExpression getParametersMapExpression()
          Returns the parameters map expression.
protected  JRDesignCrosstabRowGroup getRowGroup(int rowGroupIndex)
           
 java.util.Map<java.lang.String,java.lang.Integer> getRowGroupIndicesMap()
           
 JRCrosstabRowGroup[] getRowGroups()
          Returns the row groups of the crosstab.
 java.util.List<JRCrosstabRowGroup> getRowGroupsList()
           
 RunDirectionEnum getRunDirectionValue()
          Retrieves the run direction of this crosstab
static java.lang.String getTotalVariableName(JRCrosstabMeasure measure, JRCrosstabRowGroup rowGroup, JRCrosstabColumnGroup colGroup)
           
 JRVariable[] getVariables()
          Returns the list of variables created for this crosstab.
 java.util.Map<java.lang.String,JRVariable> getVariablesMap()
          Returns the variables of this crosstab indexed by name.
 JRCellContents getWhenNoDataCell()
          Returns a cell which will be rendered when no data was fed to the crosstab.
protected  void inheritCell(int i, int j)
           
protected  void inheritCells()
           
protected  void inheritCellSize(int i, int j)
           
 boolean isRepeatColumnHeaders()
          Returns whether to repeat the column headers after a row break.
 boolean isRepeatRowHeaders()
          Returns whether to repeat the row headers after a column break.
protected  void measureClassChanged(JRDesignCrosstabMeasure measure, java.lang.String valueClassName)
           
 void preprocess()
          Performs all the calculations required for report compilation.
 JRCrosstabCell removeCell(JRCrosstabCell cell)
          Removes a data cell.
 JRCrosstabCell removeCell(java.lang.String rowTotalGroup, java.lang.String columnTotalGroup)
          Removes a data cell.
protected  void removeColGroupVars(JRCrosstabColumnGroup colGroup)
           
 JRCrosstabColumnGroup removeColumnGroup(JRCrosstabColumnGroup group)
          Removes a column group.
 JRCrosstabColumnGroup removeColumnGroup(java.lang.String groupName)
          Removes a column group.
 JRCrosstabMeasure removeMeasure(JRCrosstabMeasure measure)
          Removes a measure.
 JRCrosstabMeasure removeMeasure(java.lang.String measureName)
          Removes a measure.
protected  void removeMeasureVars(JRDesignCrosstabMeasure measure)
           
 JRCrosstabParameter removeParameter(JRCrosstabParameter parameter)
          Removes a parameter.
 JRCrosstabParameter removeParameter(java.lang.String parameterName)
          Removes a parameter.
 JRCrosstabRowGroup removeRowGroup(JRCrosstabRowGroup group)
          Removes a row group.
 JRCrosstabRowGroup removeRowGroup(java.lang.String groupName)
          Removes a row group.
protected  void removeRowGroupVars(JRCrosstabRowGroup rowGroup)
           
protected  void removeTotalVar(JRCrosstabMeasure measure, JRCrosstabRowGroup rowGroup, JRCrosstabColumnGroup colGroup)
           
protected  void setCellOrigin(JRCellContents cell, JRCrosstabOrigin origin)
           
protected  void setCellOrigin(JRDesignCellContents cell, JRCrosstabOrigin origin)
           
 void setColumnBreakOffset(int columnBreakOffset)
          Sets the column break offset.
 void setDataset(JRDesignCrosstabDataset dataset)
          Sets the crosstab input dataset.
protected
<T> void
setGroupVariablesClass(java.util.List<T> groups)
           
 void setHeaderCell(JRDesignCellContents headerCell)
          Sets the crosstab header cell (this cell will be rendered at the upper-left corder of the crosstab).
 void setIgnoreWidth(boolean ignoreWidth)
          Set the ignore width crosstab flag.
 void setIgnoreWidth(java.lang.Boolean ignoreWidth)
          Set the ignore width crosstab flag.
 void setParametersMapExpression(JRExpression expression)
          Sets the parameters map expression.
protected  void setParent(JRDesignCrosstabGroup group)
           
 void setRepeatColumnHeaders(boolean repeatColumnHeaders)
          Sets the repeat column headers flag.
 void setRepeatRowHeaders(boolean repeatRowHeaders)
          Sets the repeat row headers flag.
 void setRunDirection(RunDirectionEnum runDirectionValue)
          Sets the run direction of the crosstab.
protected  void setTotalVarClass(JRCrosstabMeasure measure, JRCrosstabRowGroup rowGroup, JRCrosstabColumnGroup colGroup, java.lang.String valueClassName)
           
 void setWhenNoDataCell(JRDesignCellContents whenNoDataCell)
          Sets the "No data" cell.
protected  void setWhenNoDataCellSize()
           
 void visit(JRVisitor visitor)
           
 
Methods inherited from class net.sf.jasperreports.engine.design.JRDesignElement
addPropertyExpression, getPropertyExpressions, getPropertyExpressionsList, removePropertyExpression, removePropertyExpression, setElementGroup, setHeight, setKey, setPrintWhenExpression, setPrintWhenGroupChanges, setStyle, setStyleNameReference, setUUID, setY
 
Methods inherited from class net.sf.jasperreports.engine.base.JRBaseElement
clone, getBackcolor, getBaseStyle, getDefaultStyleProvider, getElementGroup, getEventSupport, getForecolor, getHeight, getKey, getOwnBackcolor, getOwnForecolor, getOwnModeValue, getParentProperties, getPositionTypeValue, getPrintWhenExpression, getPrintWhenGroupChanges, getPropertiesMap, getStretchTypeValue, getStyle, getStyleNameReference, getUUID, getWidth, getX, getY, hasProperties, isPrintInFirstWholeBand, isPrintRepeatedValues, isPrintWhenDetailOverflows, isRemoveLineWhenBlank, setBackcolor, setForecolor, setMode, setPositionType, setPrintInFirstWholeBand, setPrintRepeatedValues, setPrintWhenDetailOverflows, setRemoveLineWhenBlank, setStretchType, setWidth, setX
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.sf.jasperreports.engine.JRElement
getElementGroup, getKey, getPositionTypeValue, getPrintWhenExpression, getPrintWhenGroupChanges, getPropertyExpressions, getStretchTypeValue, getX, getY, isPrintInFirstWholeBand, isPrintRepeatedValues, isPrintWhenDetailOverflows, isRemoveLineWhenBlank, setPositionType, setPrintInFirstWholeBand, setPrintRepeatedValues, setPrintWhenDetailOverflows, setRemoveLineWhenBlank, setStretchType, setWidth, setX
 
Methods inherited from interface net.sf.jasperreports.engine.JRChild
clone
 
Methods inherited from interface net.sf.jasperreports.engine.JRCommonElement
getBackcolor, getForecolor, getHeight, getOwnBackcolor, getOwnForecolor, getOwnModeValue, getWidth, setBackcolor, setForecolor, setMode
 
Methods inherited from interface net.sf.jasperreports.engine.JRStyleContainer
getDefaultStyleProvider, getStyle, getStyleNameReference
 
Methods inherited from interface net.sf.jasperreports.engine.JRIdentifiable
getUUID
 
Methods inherited from interface net.sf.jasperreports.engine.JRPropertiesHolder
getParentProperties, getPropertiesMap, hasProperties
 

Field Detail

PROPERTY_COLUMN_BREAK_OFFSET

public static final java.lang.String PROPERTY_COLUMN_BREAK_OFFSET
See Also:
Constant Field Values

PROPERTY_DATASET

public static final java.lang.String PROPERTY_DATASET
See Also:
Constant Field Values

PROPERTY_HEADER_CELL

public static final java.lang.String PROPERTY_HEADER_CELL
See Also:
Constant Field Values

PROPERTY_PARAMETERS_MAP_EXPRESSION

public static final java.lang.String PROPERTY_PARAMETERS_MAP_EXPRESSION
See Also:
Constant Field Values

PROPERTY_REPEAT_COLUMN_HEADERS

public static final java.lang.String PROPERTY_REPEAT_COLUMN_HEADERS
See Also:
Constant Field Values

PROPERTY_REPEAT_ROW_HEADERS

public static final java.lang.String PROPERTY_REPEAT_ROW_HEADERS
See Also:
Constant Field Values

PROPERTY_WHEN_NO_DATA_CELL

public static final java.lang.String PROPERTY_WHEN_NO_DATA_CELL
See Also:
Constant Field Values

PROPERTY_CELLS

public static final java.lang.String PROPERTY_CELLS
See Also:
Constant Field Values

PROPERTY_ROW_GROUPS

public static final java.lang.String PROPERTY_ROW_GROUPS
See Also:
Constant Field Values

PROPERTY_COLUMN_GROUPS

public static final java.lang.String PROPERTY_COLUMN_GROUPS
See Also:
Constant Field Values

PROPERTY_MEASURES

public static final java.lang.String PROPERTY_MEASURES
See Also:
Constant Field Values

PROPERTY_PARAMETERS

public static final java.lang.String PROPERTY_PARAMETERS
See Also:
Constant Field Values

PROPERTY_IGNORE_WIDTH

public static final java.lang.String PROPERTY_IGNORE_WIDTH
See Also:
Constant Field Values

parametersList

protected java.util.List<JRCrosstabParameter> parametersList

parametersMap

protected java.util.Map<java.lang.String,JRCrosstabParameter> parametersMap

variablesList

protected org.apache.commons.collections.SequencedHashMap variablesList

parametersMapExpression

protected JRExpression parametersMapExpression

dataset

protected JRDesignCrosstabDataset dataset

rowGroups

protected java.util.List<JRCrosstabRowGroup> rowGroups

columnGroups

protected java.util.List<JRCrosstabColumnGroup> columnGroups

measures

protected java.util.List<JRCrosstabMeasure> measures

rowGroupsMap

protected java.util.Map<java.lang.String,java.lang.Integer> rowGroupsMap

columnGroupsMap

protected java.util.Map<java.lang.String,java.lang.Integer> columnGroupsMap

measuresMap

protected java.util.Map<java.lang.String,java.lang.Integer> measuresMap

columnBreakOffset

protected int columnBreakOffset

repeatColumnHeaders

protected boolean repeatColumnHeaders

repeatRowHeaders

protected boolean repeatRowHeaders

runDirectionValue

protected RunDirectionEnum runDirectionValue

cellsList

protected java.util.List<JRCrosstabCell> cellsList

cellsMap

protected java.util.Map<Pair<java.lang.String,java.lang.String>,JRCrosstabCell> cellsMap

crossCells

protected JRDesignCrosstabCell[][] crossCells

whenNoDataCell

protected JRDesignCellContents whenNoDataCell

headerCell

protected JRDesignCellContents headerCell

ignoreWidth

protected java.lang.Boolean ignoreWidth

lineBox

protected JRLineBox lineBox
Constructor Detail

JRDesignCrosstab

public JRDesignCrosstab(JRDefaultStyleProvider defaultStyleProvider)
Creates a new crosstab.

Parameters:
defaultStyleProvider - default style provider

JRDesignCrosstab

public JRDesignCrosstab()
Creates a new crosstab.

Method Detail

getId

public int getId()
The ID of the crosstab is only generated at compile time.

Specified by:
getId in interface JRCrosstab
Returns:
the ID of the crosstab

getDataset

public JRCrosstabDataset getDataset()
Description copied from interface: JRCrosstab
Returns the input dataset of the crosstab.

Specified by:
getDataset in interface JRCrosstab
Returns:
the input dataset of the crosstab

getDesignDataset

public JRDesignCrosstabDataset getDesignDataset()
Returns the crosstab dataset object to be used for report designing.

Returns:
the crosstab dataset design object

getRowGroups

public JRCrosstabRowGroup[] getRowGroups()
Description copied from interface: JRCrosstab
Returns the row groups of the crosstab.

Specified by:
getRowGroups in interface JRCrosstab
Returns:
the row groups

getColumnGroups

public JRCrosstabColumnGroup[] getColumnGroups()
Description copied from interface: JRCrosstab
Returns the column groups of the crosstab.

Specified by:
getColumnGroups in interface JRCrosstab
Returns:
the column groups

getMeasures

public JRCrosstabMeasure[] getMeasures()
Description copied from interface: JRCrosstab
Returns the crosstab measures.

Specified by:
getMeasures in interface JRCrosstab
Returns:
the crosstab measures

collectExpressions

public void collectExpressions(JRExpressionCollector collector)
Specified by:
collectExpressions in interface JRElement

visit

public void visit(JRVisitor visitor)
Specified by:
visit in interface JRVisitable

setDataset

public void setDataset(JRDesignCrosstabDataset dataset)
Sets the crosstab input dataset.

Parameters:
dataset - the dataset
See Also:
JRCrosstab.getDataset()

addRowGroup

public void addRowGroup(JRDesignCrosstabRowGroup group)
                 throws JRException
Adds a row group.

This group will be a sub group of the last row group, if any.

Parameters:
group - the group
Throws:
JRException
See Also:
JRCrosstab.getRowGroups()

addRowGroup

public void addRowGroup(int index,
                        JRDesignCrosstabRowGroup group)
                 throws JRException
Adds a row group.

This group will be a sub group of the last row group, if any.

Parameters:
group - the group
index - position
Throws:
JRException
See Also:
JRCrosstab.getRowGroups()

addRowGroupVars

protected void addRowGroupVars(JRDesignCrosstabRowGroup rowGroup)

addColumnGroup

public void addColumnGroup(JRDesignCrosstabColumnGroup group)
                    throws JRException
Adds a column group.

This group will be a sub group of the last column group, if any.

Parameters:
group - the group
Throws:
JRException
See Also:
JRCrosstab.getColumnGroups()

addColumnGroup

public void addColumnGroup(int index,
                           JRDesignCrosstabColumnGroup group)
                    throws JRException
Adds a column group.

This group will be a sub group of the last column group, if any.

Parameters:
group - the group
Throws:
JRException
See Also:
JRCrosstab.getColumnGroups()

addColGroupVars

protected void addColGroupVars(JRDesignCrosstabColumnGroup colGroup)

addMeasure

public void addMeasure(JRDesignCrosstabMeasure measure)
                throws JRException
Adds a measure to the crosstab.

Parameters:
measure - the measure
Throws:
JRException
See Also:
JRCrosstab.getMeasures()

addMeasure

public void addMeasure(int index,
                       JRDesignCrosstabMeasure measure)
                throws JRException
Adds a measure to the crosstab.

Parameters:
measure - the measure
Throws:
JRException
See Also:
JRCrosstab.getMeasures()

addMeasureVars

protected void addMeasureVars(JRDesignCrosstabMeasure measure)

addTotalVar

protected void addTotalVar(JRCrosstabMeasure measure,
                           JRCrosstabRowGroup rowGroup,
                           JRCrosstabColumnGroup colGroup)

removeTotalVar

protected void removeTotalVar(JRCrosstabMeasure measure,
                              JRCrosstabRowGroup rowGroup,
                              JRCrosstabColumnGroup colGroup)

getTotalVariableName

public static java.lang.String getTotalVariableName(JRCrosstabMeasure measure,
                                                    JRCrosstabRowGroup rowGroup,
                                                    JRCrosstabColumnGroup colGroup)

removeRowGroup

public JRCrosstabRowGroup removeRowGroup(java.lang.String groupName)
Removes a row group.

Parameters:
groupName - the group name
Returns:
the removed group

removeRowGroupVars

protected void removeRowGroupVars(JRCrosstabRowGroup rowGroup)

removeRowGroup

public JRCrosstabRowGroup removeRowGroup(JRCrosstabRowGroup group)
Removes a row group.

Parameters:
group - the group to be removed
Returns:
the removed group

removeColumnGroup

public JRCrosstabColumnGroup removeColumnGroup(java.lang.String groupName)
Removes a column group.

Parameters:
groupName - the group name
Returns:
the removed group

removeColGroupVars

protected void removeColGroupVars(JRCrosstabColumnGroup colGroup)

removeColumnGroup

public JRCrosstabColumnGroup removeColumnGroup(JRCrosstabColumnGroup group)
Removes a column group.

Parameters:
group - the group
Returns:
the removed group

removeMeasure

public JRCrosstabMeasure removeMeasure(java.lang.String measureName)
Removes a measure.

Parameters:
measureName - the measure name
Returns:
the removed measure

removeMeasureVars

protected void removeMeasureVars(JRDesignCrosstabMeasure measure)

removeMeasure

public JRCrosstabMeasure removeMeasure(JRCrosstabMeasure measure)
Removes a measure.

Parameters:
measure - the measure
Returns:
the removed measure

isRepeatColumnHeaders

public boolean isRepeatColumnHeaders()
Description copied from interface: JRCrosstab
Returns whether to repeat the column headers after a row break.

Specified by:
isRepeatColumnHeaders in interface JRCrosstab
Returns:
whether to repeat the column headers after a row break

setRepeatColumnHeaders

public void setRepeatColumnHeaders(boolean repeatColumnHeaders)
Sets the repeat column headers flag.

Parameters:
repeatColumnHeaders - whether to repeat the column headers on row breaks
See Also:
JRCrosstab.isRepeatColumnHeaders()

isRepeatRowHeaders

public boolean isRepeatRowHeaders()
Description copied from interface: JRCrosstab
Returns whether to repeat the row headers after a column break.

Specified by:
isRepeatRowHeaders in interface JRCrosstab
Returns:
whether to repeat the row headers after a column break

setRepeatRowHeaders

public void setRepeatRowHeaders(boolean repeatRowHeaders)
Sets the repeat row headers flag.

Parameters:
repeatRowHeaders - whether to repeat the row headers on column breaks
See Also:
JRCrosstab.isRepeatRowHeaders()

getCells

public JRCrosstabCell[][] getCells()
Description copied from interface: JRCrosstab
Returns the data cell matrix.

A crosstab can have multiple data cells for row/groups totals. These cells are organized in a (rowGroupCount + 1) x (columnGroupCount + 1) matrix as following:

E.g. if the crosstab has Country and City (subgroup of Country) row groups and Year and Month column groups, the cells will be organized in the following matrix

0/Years total 1/Months total 2/Base
0/Countries total Total for all countries and all years Total for all countries and a year Total for all countries and a month
1/Cities total Total for a country and all years Total for a country and a year Total for a country and a month
2/Base Total for a city and all years Total for a city and a year Total for a city and a month

If the data cell for a total row/column is not specified, the cell will be inherited from lower levels, if possible. For example, if the "Total for all countries and a year" cell is not specified, the "Total for a country and a year" or "Total for a city and a year" cell will be used (in this order).

The data cell sizes are calculated from the base data cell sizes, i.e. the height of all data cells for a row will be the height of the base cell of that row. The base cell sizes are also inherited, e.g. if the height of a total row is not specified the height of the base row will be used.

Specified by:
getCells in interface JRCrosstab
Returns:
the data cell matrix

getCellsList

public java.util.List<JRCrosstabCell> getCellsList()
Returns the data cells list.

Returns:
the data cells list
See Also:
addCell(JRDesignCrosstabCell)

getCellsMap

public java.util.Map<Pair<java.lang.String,java.lang.String>,JRCrosstabCell> getCellsMap()
Returns the crosstab cells indexed by corresponding row total group/ column total group pairs.

Returns:
the crosstab cells indexed by row/column total groups
See Also:
JRCrosstabCell.getRowTotalGroup(), JRCrosstabCell.getColumnTotalGroup()

addCell

public void addCell(JRDesignCrosstabCell cell)
             throws JRException
Adds a data cell to the crosstab.

Parameters:
cell - the cell
Throws:
JRException
See Also:
JRCrosstab.getCells()

removeCell

public JRCrosstabCell removeCell(java.lang.String rowTotalGroup,
                                 java.lang.String columnTotalGroup)
Removes a data cell.

Parameters:
rowTotalGroup - the cell's total row group
columnTotalGroup - the cell's total column group
Returns:
the removed cell

removeCell

public JRCrosstabCell removeCell(JRCrosstabCell cell)
Removes a data cell.

Parameters:
cell - the cell to be removed
Returns:
the removed cell

getParameters

public JRCrosstabParameter[] getParameters()
Description copied from interface: JRCrosstab
Returns the crosstab parameters.

Crosstabs have separate expression evaluators and cannot access the parameters/fields/variables of the report. In order to use a value from the report inside a crosstab, it should be passed as parameter to the crosstab.

A crosstab parameters has a name and a value expression.

Specified by:
getParameters in interface JRCrosstab
Returns:
the crosstab parameters

getParametersList

public java.util.List<JRCrosstabParameter> getParametersList()
Returns the paremeters list.

Returns:
the paremeters list

getParametersMap

public java.util.Map<java.lang.String,JRCrosstabParameter> getParametersMap()
Returns the parameters indexed by names.

Returns:
the parameters indexed by names

getParametersMapExpression

public JRExpression getParametersMapExpression()
Description copied from interface: JRCrosstab
Returns the parameters map expression.

The set of values for crosstab parameters can be set using a map. If a parameter has also a value expression, it will overwrite the value from the map.

Specified by:
getParametersMapExpression in interface JRCrosstab
Returns:
the parameters map expression

addParameter

public void addParameter(JRCrosstabParameter parameter)
                  throws JRException
Adds a parameter to the crosstab.

Parameters:
parameter - the parameter
Throws:
JRException
See Also:
JRCrosstab.getMeasures()

addParameter

public void addParameter(int index,
                         JRCrosstabParameter parameter)
                  throws JRException
Adds a parameter to the crosstab.

Parameters:
parameter - the parameter
Throws:
JRException
See Also:
JRCrosstab.getMeasures()

removeParameter

public JRCrosstabParameter removeParameter(java.lang.String parameterName)
Removes a parameter.

Parameters:
parameterName - the name of the parameter to be removed
Returns:
the removed parameter

removeParameter

public JRCrosstabParameter removeParameter(JRCrosstabParameter parameter)
Removes a parameter.

Parameters:
parameter - the parameter to be removed
Returns:
the removed parameter

setParametersMapExpression

public void setParametersMapExpression(JRExpression expression)
Sets the parameters map expression.

Parameters:
expression - the parameters map expression
See Also:
JRCrosstab.getParametersMapExpression()

getVariablesMap

public java.util.Map<java.lang.String,JRVariable> getVariablesMap()
Returns the variables of this crosstab indexed by name.

Returns:
the variables of this crosstab indexed by name

getVariables

public JRVariable[] getVariables()
Returns the list of variables created for this crosstab.

Specified by:
getVariables in interface JRCrosstab
Returns:
the list of variables created for this crosstab
See Also:
JRCrosstabGroup.getVariable(), JRCrosstabMeasure.getVariable(), JRCrosstab.VARIABLE_ROW_COUNT, JRCrosstab.VARIABLE_COLUMN_COUNT

getColumnBreakOffset

public int getColumnBreakOffset()
Description copied from interface: JRCrosstab
Returns the column break offset.

When the crosstab columns do not fit the width, the crosstab breaks the columns and prints the ones that don't fit after printing the first set of columns for all rows. This method returns the offset to be used when continuing the printing after a column break.

Specified by:
getColumnBreakOffset in interface JRCrosstab
Returns:
the column break offset

setColumnBreakOffset

public void setColumnBreakOffset(int columnBreakOffset)
Sets the column break offset.

Parameters:
columnBreakOffset - the offset
See Also:
JRCrosstab.getColumnBreakOffset()

preprocess

public void preprocess()
Performs all the calculations required for report compilation.


setGroupVariablesClass

protected <T> void setGroupVariablesClass(java.util.List<T> groups)

calculateSizes

protected void calculateSizes()

setWhenNoDataCellSize

protected void setWhenNoDataCellSize()

createCellMatrix

protected void createCellMatrix()

getRowGroup

protected JRDesignCrosstabRowGroup getRowGroup(int rowGroupIndex)

getColumnGroup

protected JRDesignCrosstabColumnGroup getColumnGroup(int columnGroupIndex)

inheritCells

protected void inheritCells()

inheritCellSize

protected void inheritCellSize(int i,
                               int j)

inheritCell

protected void inheritCell(int i,
                           int j)

calculateRowHeadersSizes

protected int calculateRowHeadersSizes()

calculateColumnHeadersSizes

protected int calculateColumnHeadersSizes()

getWhenNoDataCell

public JRCellContents getWhenNoDataCell()
Description copied from interface: JRCrosstab
Returns a cell which will be rendered when no data was fed to the crosstab.

If this cell is not specified for a crosstab, nothing will be rendered for an empty crosstab.

The cell sizes are the same as the crosstab element sizes.

Specified by:
getWhenNoDataCell in interface JRCrosstab
Returns:
a cell which will be rendered when no data was fed to the crosstab

setWhenNoDataCell

public void setWhenNoDataCell(JRDesignCellContents whenNoDataCell)
Sets the "No data" cell.

Parameters:
whenNoDataCell - the cell
See Also:
JRCrosstab.getWhenNoDataCell()

getElementByKey

public JRElement getElementByKey(java.lang.String elementKey)
Description copied from interface: JRCrosstab
Searches for an element inside all crosstab cells.

Specified by:
getElementByKey in interface JRCrosstab
Parameters:
elementKey - the element key
Returns:
the first element having the specified key

getModeValue

public ModeEnum getModeValue()
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:
getModeValue in interface JRCommonElement
Overrides:
getModeValue in class JRBaseElement

getHeaderCell

public JRCellContents getHeaderCell()
Description copied from interface: JRCrosstab
Returns a cell which will be rendered at the upper-left corner of the crosstab.

The cell size will be calculated based on the row/column header cell widths/heights.

Specified by:
getHeaderCell in interface JRCrosstab
Returns:
a cell which will be rendered at the upper-left corner of the crosstab

setHeaderCell

public void setHeaderCell(JRDesignCellContents headerCell)
Sets the crosstab header cell (this cell will be rendered at the upper-left corder of the crosstab).

Parameters:
headerCell - the cell
See Also:
JRCrosstab.getHeaderCell()

measureClassChanged

protected void measureClassChanged(JRDesignCrosstabMeasure measure,
                                   java.lang.String valueClassName)

setTotalVarClass

protected void setTotalVarClass(JRCrosstabMeasure measure,
                                JRCrosstabRowGroup rowGroup,
                                JRCrosstabColumnGroup colGroup,
                                java.lang.String valueClassName)

getRunDirectionValue

public RunDirectionEnum getRunDirectionValue()
Description copied from interface: JRCrosstab
Retrieves the run direction of this crosstab

Specified by:
getRunDirectionValue in interface JRCrosstab
Returns:
a value representing one of the run direction constants in RunDirectionEnum

setRunDirection

public void setRunDirection(RunDirectionEnum runDirectionValue)
Description copied from interface: JRCrosstab
Sets the run direction of the crosstab.

Crosstabs can either be filled from left to right (the default) or from right to left (mainly for reports in RTL languages).

Specified by:
setRunDirection in interface JRCrosstab
Parameters:
runDirectionValue - a value representing one of the run direction constants in RunDirectionEnum

setCellOrigin

protected void setCellOrigin(JRCellContents cell,
                             JRCrosstabOrigin origin)

setCellOrigin

protected void setCellOrigin(JRDesignCellContents cell,
                             JRCrosstabOrigin origin)

setParent

protected void setParent(JRDesignCrosstabGroup group)

clone

public java.lang.Object clone()
Specified by:
clone in interface JRCloneable
Overrides:
clone in class JRBaseElement

getRowGroupsList

public java.util.List<JRCrosstabRowGroup> getRowGroupsList()

getRowGroupIndicesMap

public java.util.Map<java.lang.String,java.lang.Integer> getRowGroupIndicesMap()

getColumnGroupsList

public java.util.List<JRCrosstabColumnGroup> getColumnGroupsList()

getColumnGroupIndicesMap

public java.util.Map<java.lang.String,java.lang.Integer> getColumnGroupIndicesMap()

getMesuresList

public java.util.List<JRCrosstabMeasure> getMesuresList()

getMeasureIndicesMap

public java.util.Map<java.lang.String,java.lang.Integer> getMeasureIndicesMap()

getIgnoreWidth

public java.lang.Boolean getIgnoreWidth()
Description copied from interface: JRCrosstab
Returns the ignore width flag for the crosstab.

Specified by:
getIgnoreWidth in interface JRCrosstab
Returns:
the ignore width flag, or null is the crosstab does not specify a flag value
See Also:
JRCrosstab.setIgnoreWidth(Boolean)

setIgnoreWidth

public void setIgnoreWidth(java.lang.Boolean ignoreWidth)
Description copied from interface: JRCrosstab
Set the ignore width crosstab flag.

This flag determines whether the crosstab will break at the width set for the crosstab element, or whether the crosstab is to expand over this width (and over the page width as well).

If this flag is set to true, the crosstab will expand towards the right (or towards the left if the crosstab direction is RTL) as long as it needs to. This would result in crosstab cells being rendered over the page boundary; such elements will be exported by certain grid-based exporters such as the HTML or XLS ones, but will not be visible in export formats that observe the page width, such as the PDF exporter.

The default value of this flag is given by the JRCrosstab.PROPERTY_IGNORE_WIDTH property and the JRParameter.IS_IGNORE_PAGINATION parameter.

Specified by:
setIgnoreWidth in interface JRCrosstab
Parameters:
ignoreWidth - whether the element width is to be ignored by the crosstab, or null if the default setting is to be used
See Also:
JRCrosstab.PROPERTY_IGNORE_WIDTH

setIgnoreWidth

public void setIgnoreWidth(boolean ignoreWidth)
Description copied from interface: JRCrosstab
Set the ignore width crosstab flag.

Specified by:
setIgnoreWidth in interface JRCrosstab
See Also:
JRCrosstab.setIgnoreWidth(Boolean)

getDefaultLineColor

public java.awt.Color getDefaultLineColor()
Specified by:
getDefaultLineColor in interface JRBoxContainer

getLineBox

public JRLineBox getLineBox()
Specified by:
getLineBox in interface JRBoxContainer


© 2001-2010 Jaspersoft Corporation www.jaspersoft.com