public class PaddingController extends Object implements Cloneable
The crosstab-specification's current cursor position is not at the computed position for the current column key (the column values read from the actual data-row). Therefore the system has to insert fake columns until the cursor has advanced to the current position. As we are effectively duplicating rows, this may lead to corrupted data if we duplicate non-group-columns.
After an advance, the computed column-key position is greater than the current cursor position. Therefore the system has to insert fake data until the positions match again.
If the advance would trigger a group-break, check whether the current cursor position is already at the end of the columns list. If not, stay on the current row and insert as many fake rows as needed.
Constructor and Description |
---|
PaddingController(CrosstabSpecification crosstabSpecification) |
PaddingController(PaddingController dataRow) |
Modifier and Type | Method and Description |
---|---|
void |
activate(MasterDataRowChangeHandler dataRow) |
PaddingController |
advance() |
PaddingController |
clone() |
Object[] |
createColumnKey(FastGlobalView globalView) |
Object[] |
createRowKey(FastGlobalView globalView) |
int |
getCrosstabColumnCount() |
CrosstabSpecification |
getCrosstabSpecification() |
int |
getCurrentCursorPosition() |
int |
getPrePaddingRows(DataRow globalView)
Do we need a case1 padding?
|
void |
refreshPaddedRow(MasterDataRowChangeHandler dataRow,
ReportDataRow reportDataRow) |
void |
refreshRow(MasterDataRowChangeHandler dataRow,
ReportDataRow reportDataRow) |
PaddingController |
resetRowCursor() |
public PaddingController(PaddingController dataRow)
public PaddingController(CrosstabSpecification crosstabSpecification)
public int getPrePaddingRows(DataRow globalView)
globalView
- public int getCurrentCursorPosition()
public int getCrosstabColumnCount()
public PaddingController advance()
public void activate(MasterDataRowChangeHandler dataRow)
public void refreshPaddedRow(MasterDataRowChangeHandler dataRow, ReportDataRow reportDataRow)
public void refreshRow(MasterDataRowChangeHandler dataRow, ReportDataRow reportDataRow)
public PaddingController resetRowCursor()
public Object[] createRowKey(FastGlobalView globalView)
public Object[] createColumnKey(FastGlobalView globalView)
public CrosstabSpecification getCrosstabSpecification()
public PaddingController clone()