org.eclipse.birt.report.model.api
Class TableHandle

java.lang.Object
  extended by org.eclipse.birt.report.model.api.DesignElementHandle
      extended by org.eclipse.birt.report.model.api.ReportElementHandle
          extended by org.eclipse.birt.report.model.api.ReportItemHandle
              extended by org.eclipse.birt.report.model.api.ListingHandle
                  extended by org.eclipse.birt.report.model.api.TableHandle
All Implemented Interfaces:
IReportItemMethodContext, org.eclipse.birt.report.model.elements.interfaces.IDesignElementModel, org.eclipse.birt.report.model.elements.interfaces.IListingElementModel, org.eclipse.birt.report.model.elements.interfaces.IReportItemModel, org.eclipse.birt.report.model.elements.interfaces.IStyledElementModel, org.eclipse.birt.report.model.elements.interfaces.ITableItemModel

public class TableHandle
extends ListingHandle
implements org.eclipse.birt.report.model.elements.interfaces.ITableItemModel

Represents a table element. A table has a localized caption and can repeat its heading at the top of each page. The table is a list that is structured into a rows and columns. The columns are defined for the entire table. Rows are clustered into a set of groups.

To get the layout of a table, it is recommended to use LayoutTableModel.

See Also:
TableItem, LayoutTableModel

Field Summary
 
Fields inherited from class org.eclipse.birt.report.model.api.ReportItemHandle
DATABINDING_TYPE_DATA, DATABINDING_TYPE_NONE, DATABINDING_TYPE_REPORT_ITEM_REF
 
Fields inherited from class org.eclipse.birt.report.model.api.ReportElementHandle
element
 
Fields inherited from class org.eclipse.birt.report.model.api.DesignElementHandle
module
 
Fields inherited from interface org.eclipse.birt.report.model.elements.interfaces.ITableItemModel
CAPTION_KEY_PROP, CAPTION_PROP, COLUMN_SLOT, SUMMARY_PROP
 
Fields inherited from interface org.eclipse.birt.report.model.elements.interfaces.IListingElementModel
DETAIL_SLOT, FILTER_PROP, FOOTER_SLOT, GROUP_SLOT, HEADER_SLOT, ON_FINISH_METHOD, ON_ROW_METHOD, ON_START_METHOD, PAGE_BREAK_INTERVAL_PROP, REPEAT_HEADER_PROP, SORT_BY_GROUPS_PROP, SORT_PROP
 
Fields inherited from interface org.eclipse.birt.report.model.elements.interfaces.IReportItemModel
ACL_EXPRESSION_PROP, ALLOW_EXPORT_PROP, BOOKMARK_PROP, BOUND_DATA_COLUMNS_PROP, CASCADE_ACL_PROP, CUBE_PROP, DATA_BINDING_REF_PROP, DATA_SET_PROP, HEIGHT_PROP, MULTI_VIEWS_PROP, ON_CREATE_METHOD, ON_PAGE_BREAK_METHOD, ON_PREPARE_METHOD, ON_RENDER_METHOD, PARAM_BINDINGS_PROP, TOC_PROP, VISIBILITY_PROP, WIDTH_PROP, X_PROP, Y_PROP, Z_INDEX_PROP
 
Fields inherited from interface org.eclipse.birt.report.model.elements.interfaces.IStyledElementModel
STYLE_PROP
 
Fields inherited from interface org.eclipse.birt.report.model.api.elements.IReportItemMethodContext
ON_CREATE_CONTEXT, ON_PREPARE_CONTEXT, ON_RENDER_CONTEXT
 
Fields inherited from interface org.eclipse.birt.report.model.elements.interfaces.IDesignElementModel
COMMENTS_PROP, CUSTOM_XML_PROP, DISPLAY_NAME_ID_PROP, DISPLAY_NAME_PROP, EVENT_HANDLER_CLASS_PROP, EXTENDS_PROP, FULL_LABEL, ID_SUFFIX, NAME_PROP, NO_SLOT, PROPERTY_MASKS_PROP, REF_TEMPLATE_PARAMETER_PROP, SHORT_LABEL, USER_LABEL, USER_PROPERTIES_PROP, VIEW_ACTION_PROP
 
Constructor Summary
TableHandle(org.eclipse.birt.report.model.core.Module module, org.eclipse.birt.report.model.core.DesignElement element)
          Constructs a handle for the table with the given design and element.
 
Method Summary
 boolean canCopyColumn(int columnIndex)
          Copies a column and cells under it with the given column number.
 boolean canCopyRow(RowOperationParameters parameters)
          Checks whether the copy operation can be done with the given parameters.
 boolean canInsertAndPasteColumn(ColumnBandData data, int columnIndex)
          Checks whether the insert and paste operation can be done with the given copied column band data, the column index and the operation flag.
 boolean canInsertAndPasteRow(IDesignElement copiedRow, RowOperationParameters parameters)
          Checks whether the inserting and paste table row to the given destination row with the given parameters.
 boolean canInsertRow(RowOperationParameters parameters)
          Checks whether inserting an empty table row can be done with the given parameters.
 boolean canPasteColumn(ColumnBandData data, int columnIndex, boolean inForce)
          Checks whether the paste operation can be done with the given copied column band data, the column index and the operation flag.
 boolean canPasteRow(IDesignElement copiedRow, RowOperationParameters parameters)
          Checks whether the paste operation can be done with the given parameters.
 boolean canShiftColumn(int sourceColumn, int destColumn)
          Moves the column from sourceColumn to destColumn.
 boolean canShiftRow(RowOperationParameters parameters)
          Checks whether the shift operation can be done with the given the given parameters.
 ColumnBandData copyColumn(int columnIndex)
          Copies a column and cells under it with the given column number.
 IDesignElement copyRow(RowOperationParameters parameters)
          Copies table row with the given parameters.
 ColumnHandle findColumn(int columnNum)
          Figures out the column according to the index of the column.
 java.lang.String getCaption()
          Returns the caption text of this table.
 java.lang.String getCaptionKey()
          Returns the resource key of the caption.
protected  CellHandle getCell(int row, int column)
          Gets the cell at the position where the given row and column intersect regardless of slot information.
 CellHandle getCell(int slotId, int groupLevel, int row, int column)
          Gets the cell at the position where the given row and column intersect within the given slot.
 int getColumnCount()
          Returns the number of columns in the table.
 SlotHandle getColumns()
          Returns the column slot.
 java.util.List getFilters(int colIndex)
          Returns a list containing filters applied to the column at position of colIndex.
 LayoutTableModel getLayoutModel()
          Returns the layout model of the table.
 java.lang.String getSummary()
          Returns the value of the summary.
 void insertAndPasteColumn(ColumnBandData data, int columnNumber)
          Inserts and pastes a column with its cells to the given column number.
 void insertAndPasteRow(IDesignElement copiedRow, RowOperationParameters parameters)
          Inserts and paste table row to the given destination row with the given parameters.
 void insertColumn(int columnNumber, int positionFlag)
          Inserts a column to the table.
 void insertRow(RowOperationParameters parameters)
          Inserts table row to the given destination row with the given parameters.
 void pasteColumn(ColumnBandData data, int columnNumber, boolean inForce)
          Pastes a column with its cells to the given column number.
 void pasteRow(IDesignElement copiedRow, RowOperationParameters parameters)
          Pastes table row to destination row with the given parameters.
 void setCaption(java.lang.String caption)
          Sets the caption text of this table.
 void setCaptionKey(java.lang.String captionKey)
          Sets the resource key of the caption.
 void setSummary(java.lang.String summary)
          Sets the value of summary.
 void shiftColumn(int sourceColumn, int destColumn)
          Moves the column from sourceColumn to destIndex.
 void shiftRow(RowOperationParameters parameters)
          Shifts table row to the given destination row with the given parameters.
 
Methods inherited from class org.eclipse.birt.report.model.api.ListingHandle
filtersIterator, getDetail, getFooter, getGroups, getHeader, getPageBreakInterval, isSortByGroups, repeatHeader, setPageBreakInterval, setRepeatHeader, setSortByGroups, sortsIterator
 
Methods inherited from class org.eclipse.birt.report.model.api.ReportItemHandle
addColumnBinding, addTOC, addTOC, addView, allowExport, canCascadeACL, cascadeACL, columnBindingsIterator, dropView, findColumnBinding, getACLExpression, getAvailableBindings, getAvailableCubeBindingReferenceList, getAvailableDataBindingReferenceList, getAvailableDataSetBindingReferenceList, getBookmark, getColumnBindings, getCube, getCurrentView, getDataBindingReference, getDataBindingReferenceName, getDataBindingType, getDataSet, getHeight, getMethods, getNamedCubeBindingReferenceList, getNamedDataBindingReferenceList, getNamedDataSetBindingReferenceList, getOnCreate, getOnPageBreak, getOnPrepare, getOnRender, getTOC, getTocExpression, getViewHost, getViews, getWidth, getX, getY, getZIndex, paramBindingsIterator, removedColumnBinding, removedColumnBindings, removedUnusedColumnBindings, setACLExpression, setAllowExport, setBookmark, setCascadeACL, setCube, setCurrentView, setDataBindingReference, setDataSet, setHeight, setHeight, setOnCreate, setOnPageBreak, setOnPrepare, setOnRender, setTocExpression, setWidth, setWidth, setX, setX, setY, setY, setZIndex, visibilityRulesIterator
 
Methods inherited from class org.eclipse.birt.report.model.api.ReportElementHandle
getComments, getCustomXml, getDisplayName, getDisplayNameKey, getElement, getPropertyMask, isValidLayoutForCompoundElement, isValidReferenceForCompoundElement, propertyMaskIterator, setComments, setCustomXml, setDisplayName, setDisplayNameKey, setPropertyMask
 
Methods inherited from class org.eclipse.birt.report.model.api.DesignElementHandle
add, add, addElement, addElement, addListener, addUserPropertyDefn, cachePropertyHandles, canContain, canContain, canContain, canContain, canDrop, canEdit, canTransformToTemplate, clearAllProperties, clearContents, clearProperty, clientsIterator, copy, copyPropertyTo, createTemplateElement, derivedIterator, doSort, drop, drop, drop, dropAndClear, dropAndClear, dropAndClear, dropUserPropertyDefn, findContentSlot, getBooleanProperty, getChoices, getColorProperty, getContainer, getContainerPropertyHandle, getContainerSlotHandle, getContent, getContentCount, getContents, getDefn, getDesign, getDesignHandle, getDimensionProperty, getDisplayLabel, getDisplayLabel, getDisplayProperty, getEffectiveModule, getElementFactory, getElementProperty, getEventHandlerClass, getExtends, getExternalizedValue, getExternalizedValue, getExternalizedValue, getFactoryPropertyHandle, getFloatProperty, getFontProperty, getFullName, getHostViewHandle, getID, getIndex, getIntProperty, getListProperty, getListProperty, getMethods, getModule, getModuleHandle, getName, getNumberProperty, getPrivateStyle, getProperty, getPropertyBinding, getPropertyBindings, getPropertyDefn, getPropertyHandle, getPropertyIterator, getQualifiedName, getRoot, getSemanticErrors, getSlot, getStringProperty, getStyle, getUserProperties, getUserPropertyDefnHandle, getXPath, hasLocalProperties, hasSemanticError, initializeSlotHandles, isDirectionRTL, isInTemplateParameter, isTemplateParameterValue, isValid, localize, move, move, moveTo, moveTo, moveTo, moveTo, paste, paste, paste, paste, removeListener, revertToReportItem, revertToTemplate, semanticCheck, setEncryption, setEventHandlerClass, setExtends, setExtendsElement, setExtendsName, setFloatProperty, setIntProperty, setName, setNumberProperty, setProperties, setProperty, setPropertyBinding, setStringProperty, setStyle, setStyleElement, setStyleName, setValid, shift, showError
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TableHandle

public TableHandle(org.eclipse.birt.report.model.core.Module module,
                   org.eclipse.birt.report.model.core.DesignElement element)
Constructs a handle for the table with the given design and element. The application generally does not create handles directly. Instead, it uses one of the navigation methods available on other element handles.

Parameters:
module - the module
element - the model representation of the element
Method Detail

getColumns

public SlotHandle getColumns()
Returns the column slot. The column slot represents a list of Column elements that describe the table columns.

Returns:
a handle to the detail slot
See Also:
SlotHandle

getColumnCount

public int getColumnCount()
Returns the number of columns in the table. The number is defined as 1) the sum of columns described in the "column" slot, or 2) the widest row defined in the detail, header or footer slots if column slot is empty.

Returns:
the number of columns in the table

getCaption

public java.lang.String getCaption()
Returns the caption text of this table.

Returns:
the caption text

setCaption

public void setCaption(java.lang.String caption)
                throws SemanticException
Sets the caption text of this table.

Parameters:
caption - the caption text
Throws:
SemanticException - if the property is locked.

getSummary

public java.lang.String getSummary()
Returns the value of the summary.

Returns:
the value of summary

setSummary

public void setSummary(java.lang.String summary)
                throws SemanticException
Sets the value of summary.

Parameters:
summary - the value of summary
Throws:
SemanticException

getCaptionKey

public java.lang.String getCaptionKey()
Returns the resource key of the caption.

Returns:
the resource key of the caption

setCaptionKey

public void setCaptionKey(java.lang.String captionKey)
                   throws SemanticException
Sets the resource key of the caption.

Parameters:
captionKey - the resource key of the caption
Throws:
SemanticException - if the caption resource-key property is locked.

canCopyColumn

public boolean canCopyColumn(int columnIndex)
Copies a column and cells under it with the given column number.

Parameters:
columnIndex - the column position indexing from 1.
Returns:
true if this column band can be copied. Otherwise false.

canPasteColumn

public boolean canPasteColumn(ColumnBandData data,
                              int columnIndex,
                              boolean inForce)
Checks whether the paste operation can be done with the given copied column band data, the column index and the operation flag.

Parameters:
data - the column band data to paste
columnIndex - the column index from 1 to the number of columns in the table
inForce - true indicates to paste the column regardless of the different layout of cells. false indicates not.
Returns:
true indicates the paste operation can be done. Otherwise false.

canCopyRow

public boolean canCopyRow(RowOperationParameters parameters)
Checks whether the copy operation can be done with the given parameters.

Parameters:
parameters - parameters needed by insert operation.
Returns:
true if this row band can be copied. Otherwise false.

canPasteRow

public boolean canPasteRow(IDesignElement copiedRow,
                           RowOperationParameters parameters)
Checks whether the paste operation can be done with the given parameters.

Parameters:
copiedRow - the copied table row
parameters - parameters needed by insert operation.
Returns:
true indicates the paste operation can be done. Otherwise false.

canInsertRow

public boolean canInsertRow(RowOperationParameters parameters)
Checks whether inserting an empty table row can be done with the given parameters.

Parameters:
parameters - parameters needed by insert operation.
Returns:
true indicates the insert operation can be done. Otherwise false.

canInsertAndPasteRow

public boolean canInsertAndPasteRow(IDesignElement copiedRow,
                                    RowOperationParameters parameters)
Checks whether the inserting and paste table row to the given destination row with the given parameters.

Parameters:
copiedRow - the copied table row
parameters - parameters needed by insert operation.
Returns:
true indicates the insert and paste operation can be done. Otherwise false.

canShiftRow

public boolean canShiftRow(RowOperationParameters parameters)
Checks whether the shift operation can be done with the given the given parameters.

Parameters:
parameters - parameters needed by insert operation.
Returns:
true indicates the shift operation can be done. Otherwise false.

copyColumn

public ColumnBandData copyColumn(int columnIndex)
                          throws SemanticException
Copies a column and cells under it with the given column number.

Parameters:
columnIndex - the column number
Returns:
a new ColumnBandAdapter instance
Throws:
SemanticException - if the cell layout of the column is invalid.

pasteColumn

public void pasteColumn(ColumnBandData data,
                        int columnNumber,
                        boolean inForce)
                 throws SemanticException
Pastes a column with its cells to the given column number.

Parameters:
data - the data of a column band to paste
columnNumber - the column index from 1 to the number of columns in the table
inForce - true if pastes the column regardless of the warning. Otherwise false.
Throws:
SemanticException

copyRow

public IDesignElement copyRow(RowOperationParameters parameters)
                       throws SemanticException
Copies table row with the given parameters.

Parameters:
parameters - parameters needed by insert operation.
Returns:
a new TableRow instance
Throws:
SemanticException - throw if paste operation is forbidden
java.lang.IllegalArgumentException - throw if the input parameters are not valid

pasteRow

public void pasteRow(IDesignElement copiedRow,
                     RowOperationParameters parameters)
              throws SemanticException
Pastes table row to destination row with the given parameters.

Parameters:
copiedRow - the copied table row
parameters - parameters needed by insert operation.
Throws:
SemanticException - throw if paste operation is forbidden
java.lang.IllegalArgumentException - throw if the input parameters are not valid

insertRow

public void insertRow(RowOperationParameters parameters)
               throws SemanticException
Inserts table row to the given destination row with the given parameters.

Parameters:
parameters - parameters needed by insert operation.
Throws:
SemanticException - throw if paste operation is forbidden
java.lang.IllegalArgumentException - throw if the input parameters are not valid

insertAndPasteRow

public void insertAndPasteRow(IDesignElement copiedRow,
                              RowOperationParameters parameters)
                       throws SemanticException
Inserts and paste table row to the given destination row with the given parameters.

Parameters:
copiedRow - the copied table row
parameters - parameters needed by insert operation.
Throws:
SemanticException - throw if paste operation is forbidden
java.lang.IllegalArgumentException - throw if the input parameters are not valid

shiftRow

public void shiftRow(RowOperationParameters parameters)
              throws SemanticException
Shifts table row to the given destination row with the given parameters.

Parameters:
parameters - parameters needed by insert operation.
Throws:
SemanticException - throw if paste operation is forbidden
java.lang.IllegalArgumentException - throw if the input parameters are not valid

insertAndPasteColumn

public void insertAndPasteColumn(ColumnBandData data,
                                 int columnNumber)
                          throws SemanticException
Inserts and pastes a column with its cells to the given column number.

Parameters:
data - the data of a column band to paste
columnNumber - the column index from 0 to the number of columns in the table
Throws:
SemanticException

canInsertAndPasteColumn

public boolean canInsertAndPasteColumn(ColumnBandData data,
                                       int columnIndex)
Checks whether the insert and paste operation can be done with the given copied column band data, the column index and the operation flag. This is different from canPasteColumn since this action creates an extra column for the table.

Parameters:
data - the column band data to paste
columnIndex - the column index from 0 to the number of columns in the table
Returns:
true indicates the paste operation can be done. Otherwise false.

shiftColumn

public void shiftColumn(int sourceColumn,
                        int destColumn)
                 throws SemanticException
Moves the column from sourceColumn to destIndex.

Parameters:
sourceColumn - the source column ranging from 1 to the column number
destColumn - the target column ranging from 0 to the column number
Throws:
SemanticException - if the chosen column band is forbidden to shift

canShiftColumn

public boolean canShiftColumn(int sourceColumn,
                              int destColumn)
Moves the column from sourceColumn to destColumn.

Parameters:
sourceColumn - the source column ranging from 1 to the column number
destColumn - the target column ranging from 0 to the column number
Returns:
true if the chosen column band is legal to shift. Otherwise false.

getLayoutModel

public LayoutTableModel getLayoutModel()
Returns the layout model of the table.

Returns:
the layout model of the table

insertColumn

public void insertColumn(int columnNumber,
                         int positionFlag)
                  throws SemanticException
Inserts a column to the table. This includes inserting a table column and corresponding table cells to the table item.

The insert action cannot be finished succesfully for cases like this:

                                                <cell colSpan="1/><cell colSpan="1/>
                                                <cell colSpan="2/>
 
if the user want to insert a column with cells to the column 2.

Parameters:
columnNumber - The 1-based column number.
positionFlag - The column insert sign. 1 insert after position. -1 insert before position
Throws:
SemanticException - if the given position is occupied by any cell with a column span equal or greater than 1.

getCell

protected CellHandle getCell(int row,
                             int column)
Gets the cell at the position where the given row and column intersect regardless of slot information. The table is viewed as be constructed by a set of flattened rows.

Parameters:
row - the row position indexing from 1
column - the column position indexing from 1
Returns:
the cell handle at the position if the cell exists, otherwise null

getCell

public CellHandle getCell(int slotId,
                          int groupLevel,
                          int row,
                          int column)
Gets the cell at the position where the given row and column intersect within the given slot. The first row in the slot is count as 1. And so on.

If groupLevel is less or equal than 0, then retrieve cell from header/detail/footer. If not, return the cell from the given group.

Parameters:
slotId - the slot id
groupLevel - the group level indexing from 1. Or -1 if to get the cell from header/detail/footer.
row - the row position indexing from 1
column - the column position indexing from 1
Returns:
the cell handle at the position if the cell exists, otherwise null

findColumn

public ColumnHandle findColumn(int columnNum)
Figures out the column according to the index of the column.

Parameters:
module - the report design
columnSlot - the slot contains columns
columnNum - the 1-based column number to search
Returns:
the index of a column.

getFilters

public java.util.List getFilters(int colIndex)
Returns a list containing filters applied to the column at position of colIndex.

Parameters:
colIndex - the column index ranging from 0 to columnCount - 1
Returns:
a list containing matched filter conditions


Copyright © 2008 Actuate Corp. All rights reserved.