| 
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.sibvisions.rad.model.mem.DataRow
com.sibvisions.rad.model.mem.ChangeableDataRow
com.sibvisions.rad.model.mem.MemDataBook
public class MemDataBook
The MemDataBook is a storage independent table, and handles all operations
 to load, save and manipulate table oriented data. 
 An MemDataBook has at least one MemDataPage to store all
 DataRow's of this MemDataBook. If an MemDataBook
 has detail IDataBook's, it handles for each detail IDataBook
 the IDataPage's. Thats necessary because every change of the selected
 IDataRow needs to initiate the change of the corresponding details.
 So the IDataBook adds the appropriate IDataPage's into the
 detail IDataBook's.
 The MemDataBook is also a IChangeableDataRow, the selected row
 of the MemDataBook.
MemDataPage, 
IDataPage, 
IDataBook, 
IRowDefinition, 
IChangeableDataRow, 
IDataSource, 
Serialized Form| Nested Class Summary | 
|---|
| Nested classes/interfaces inherited from interface javax.rad.model.IDataBook | 
|---|
IDataBook.SelectionMode, IDataBook.WriteBackIsolationLevel | 
| Field Summary | |
|---|---|
protected  boolean | 
bMemFilter
Determines if the filter should be made in memory.  | 
protected  boolean | 
bMemSort
Determines if the sort should be made in memory.  | 
protected  IDataBook | 
rootDataBook
The root data book.  | 
protected  DataRow | 
rowInstance1
Optimization for fast row access with singleton instance of data row for search, filter, sort.  | 
protected  DataRow | 
rowInstance2
Optimization for fast row access with singleton instance of data row for search, filter, sort.  | 
| Fields inherited from class com.sibvisions.rad.model.mem.ChangeableDataRow | 
|---|
DELETING, DETAILS_CHANGED, dpDataPage, INSERTING, INTERNAL_OFFSET, iRowIndex, UPDATING, WRITABLE_COLUMN_CHANGED | 
| Fields inherited from class com.sibvisions.rad.model.mem.DataRow | 
|---|
oaStorage, rdRowDefinition | 
| Constructor Summary | |
|---|---|
MemDataBook()
Contructs a new MemDataBook with an empty RowDefinition. | 
|
MemDataBook(RowDefinition pRowDefinition)
Constructs a new MemDataBook with the given RowDefinition. | 
|
| Method Summary | |
|---|---|
 void | 
addControl(IControl pControl)
Adds the given IControl to this IDataRow as control. | 
 void | 
addDetailDataBook(IDataBook pDetailDataBook)
Registers the given IDataBook as a detail IDataBook. | 
protected  void | 
calculateRow()
Calculates the given row.  | 
 void | 
cancelEditingControls()
Informs all registered controls that they should
 cancel any pending editing operation and revert to the values in this
 IDataRow. | 
protected  void | 
clear()
It clears the AbstractStorage of the MemDataBook.  | 
protected  void | 
clearCurrentDataPage()
It clears the AbstractStorage of the MemDataBook.  | 
protected  void | 
clearFilterSortInCurrentMemDataPage()
It clears all mem filter sorts in the MemDataPages.  | 
protected  void | 
clearFilterSortInMemDataPages()
It clears all mem filter sorts in the MemDataPages.  | 
 void | 
close()
Closes this IDataBook. | 
protected  MemDataPage | 
createAndCacheDataPage(IDataRow pMasterDataRow)
It constructs a new MemDataPage and puts it in the datapage cache.  | 
protected  MemDataPage | 
createDataPage(IDataRow pMasterDataRow)
It constructs a new MemDataPage.  | 
 IDataRow | 
createDataRow(java.lang.String[] pColumnNames)
Creates and returns a new IDataRow which only contains the
 specified columns and their values. | 
static IReadOnlyChecker | 
createReadOnlyChecker(java.lang.Object pReadOnlyCheckerObject,
                      java.lang.String pMethodName)
Creates a read only checkerr instance with the given object and method name.  | 
static IRowCalculator | 
createRowCalculator(java.lang.Object pRowCalculatorObject,
                    java.lang.String pMethodName)
Creates a row calculator instance with the given object and method name.  | 
 void | 
delete()
Deletes the currently selected row.  | 
 void | 
deleteAllDataRows()
Deprecated.  | 
 void | 
deleteAllRows()
Deletes all IDataRows which are currently available, it is the
 same as IDataBook.delete() except that it is a mass operation on all rows. | 
 DataBookHandler | 
eventAfterColumnSelected()
Gets the DataBookHandler for after column selected event. | 
 DataBookHandler | 
eventAfterDeleted()
Gets the DataBookHandler for after deleted event. | 
 DataBookHandler | 
eventAfterDeleting()
Gets the DataBookHandler for after deleting event. | 
 DataBookHandler | 
eventAfterFilterChanged()
Gets the DataBookHandler for after filter changed event. | 
 DataBookHandler | 
eventAfterInserted()
Gets the DataBookHandler for after inserted event. | 
 DataBookHandler | 
eventAfterInserting()
Gets the DataBookHandler for after inserting event. | 
 DataBookHandler | 
eventAfterReload()
Gets the DataBookHandler for after reload event. | 
 DataBookHandler | 
eventAfterRestore()
Gets the DataBookHandler for after restore event. | 
 DataBookHandler | 
eventAfterRowSelected()
Gets the DataBookHandler for after row selected event. | 
 DataBookHandler | 
eventAfterSortChanged()
Gets the DataBookHandler for after sort changed event. | 
 DataBookHandler | 
eventAfterUpdated()
Gets the DataBookHandler for after updated event. | 
 DataBookHandler | 
eventAfterUpdating()
Gets the DataBookHandler for after updating event. | 
 DataBookHandler | 
eventBeforeColumnSelected()
Gets the DataBookHandler for before column selected event. | 
 DataBookHandler | 
eventBeforeDeleted()
Gets the DataBookHandler for before deleted event. | 
 DataBookHandler | 
eventBeforeDeleting()
Gets the DataBookHandler for before deleting event. | 
 DataBookHandler | 
eventBeforeFilterChanged()
Gets the DataBookHandler for before filter changed event. | 
 DataBookHandler | 
eventBeforeInserted()
Gets the DataBookHandler for before inserted event. | 
 DataBookHandler | 
eventBeforeInserting()
Gets the DataBookHandler for before inserting event. | 
 DataBookHandler | 
eventBeforeReload()
Gets the DataBookHandler for before reload event. | 
 DataBookHandler | 
eventBeforeRestore()
Gets the DataBookHandler for before restore event. | 
 DataBookHandler | 
eventBeforeRowSelected()
Gets the DataBookHandler for before row selected event. | 
 DataBookHandler | 
eventBeforeSortChanged()
Gets the DataBookHandler for before sort changed event. | 
 DataBookHandler | 
eventBeforeUpdated()
Gets the DataBookHandler for before updated event. | 
 DataBookHandler | 
eventBeforeUpdating()
Gets the DataBookHandler for before updating event. | 
protected  void | 
executeDelete(IChangeableDataRow pDataRow)
Its called when the deleting DataRow (delete row) should be deleted.  | 
protected  IDataRow | 
executeInsert(IChangeableDataRow pDataRow)
Its called when the inserting DataRow (new row) should be inserted.  | 
protected  IDataRow | 
executeLockAndRefetch(IChangeableDataRow pDataRow)
Its called before the DataRow (existing row) will be changed.  | 
protected  void | 
executeRefresh()
It will be called, when the MemDataBook will be completely refreshed.  | 
protected  void | 
executeRefreshDataPage()
It will be called, when the MemDataBook will be completely refreshed.  | 
protected  IDataRow | 
executeUpdate(IChangeableDataRow pDataRow)
Its called when the updating DataRow (changed row) should be updated Derived classed should override this to implemented the needed functionality.  | 
 void | 
fetchAll()
Fetches all IDataRows from the storage. | 
protected  void | 
finalize()
 | 
 ChangeableDataRow | 
getAdditionalDataRow()
Returns the additional data row.  | 
 int[] | 
getChangedDataRows()
Deprecated.  | 
 int[] | 
getChangedRows()
Gets an int array containing the indexes of all changed IDataRow
 s. | 
 IDataBook | 
getDataBook()
Gets the parent IDataBook. | 
 IDataPage | 
getDataPage()
Gets the parent IDataPage. | 
 IDataPage | 
getDataPage(IDataRow pMasterDataRow)
Returns the corresponding IDataPage to specified master row
 from the master DataBook. | 
 IDataPage | 
getDataPage(IDataRow pRootRow,
            TreePath pTreePath)
Gets the IDataPage for the given TreePath and the given
 root row. | 
 IDataPage | 
getDataPage(TreePath pTreePath)
Gets the IDataPage for the given TreePath. | 
 IDataPage | 
getDataPageWithRootRow(IDataRow pRootDataRow)
Returns the corresponding IDataPage to specified root row
 from the root DataBook. | 
 IChangeableDataRow | 
getDataRow(int pDataRowIndex)
Gets a copy of the IChangeableDataRow at the specified index. | 
 IDataSource | 
getDataSource()
Gets the IDataSource that is used. | 
 IDataBook[] | 
getDetailDataBooks()
Gets all detail IDataBooks as array. | 
 int | 
getEstimatedRowCount()
Returns the row count in IDBAccess for this RemoteDataBook. | 
 ICondition | 
getFilter()
Gets the used filter. | 
 IDataRow | 
getMasterDataRow()
Gets the corresponding master row. | 
 ReferenceDefinition | 
getMasterReference()
Gets the master reference that is used. | 
 java.lang.String | 
getName()
Gets the name that is used.  | 
 IDataRow | 
getOriginalDataRow()
Gets the original IDataRow, before any changes were performed. | 
 int | 
getReadAhead()
Returns the count of rows which are read ahead from the IDBAccess.  | 
 IReadOnlyChecker | 
getReadOnlyChecker()
Gets the IReadOnlyChecker. | 
 IDataBook | 
getRootDataBook()
Gets the root data book.  | 
protected  IDataBook | 
getRootDataBookIntern()
Evaluates the current root data book.  | 
 ReferenceDefinition | 
getRootReference()
Gets the tree root reference.  | 
 IRowCalculator | 
getRowCalculator()
Gets the IRowCalculator. | 
 int | 
getRowCount()
Gets the number of rows which are currently held.  | 
 IRowDefinition | 
getRowDefinition()
Gets the IRowDefinition that is used. | 
 int | 
getRowIndex()
Gets the row index within the parent IDataPage. | 
 java.lang.String | 
getSelectedColumn()
Gets the name of the selected column.  | 
 int | 
getSelectedDataPageRow()
Returns the selected row index relatively to the current IDataPage. | 
 int | 
getSelectedRow()
Gets the index of the selected row.  | 
 IDataBook.SelectionMode | 
getSelectionMode()
Gets the IDataBook.SelectionMode that is used. | 
 SortDefinition | 
getSort()
Gets the used SortDefinition. | 
 TreePath | 
getTreePath()
Gets the tree current tree path.  | 
 java.lang.Object | 
getUID()
Gets the internal unique identifier for this IDataRow. | 
 java.lang.Object | 
getValue(int pColumnIndex)
Returns the value of the column by index.  | 
 java.lang.Object | 
getValue(java.lang.String pColumnName)
Returns the value of the named column.  | 
 java.lang.Object[] | 
getValues(java.lang.String[] pColumnNames)
Gets the values from all specified columns as an Object array. | 
 IDataBook.WriteBackIsolationLevel | 
getWritebackIsolationLevel()
Gets the IDataBook.WriteBackIsolationLevel that is used. | 
 boolean | 
hasChanges()
Checks if the databook has changes.  | 
 boolean | 
hasDataPage(IDataRow pMasterDataRow)
Returns true if an IDataPage to specified master row from
 the master DataBook exists. | 
 boolean | 
hasDataPage(IDataRow pRootDataRow,
            TreePath pTreePath)
Returns true if an IDataPage to specified root row and TreePath
 from the master DataBook exists. | 
 int | 
insert(boolean pBeforeRow)
Inserts a new IDataRow at the current position. | 
protected  void | 
invokeTreeCancelEditingControls()
Its invokes for each IComponent  the cancelEditing() method. | 
protected  void | 
invokeTreeSaveEditingControls()
It invokes for each IComponent  the saveEditing() method. | 
 boolean | 
isAdditionalDataRowVisible()
True, if the additional data row is visible.  | 
 boolean | 
isAllFetched()
Gets if all IDataRows have been fetched from the storage, and
 there is nothing more to fetch. | 
protected  boolean | 
isDataPageRefetchPossible()
This function is used for rehashing data pages after insert of the master row.  | 
 boolean | 
isDeleteAllowed()
Gets if it is possible to delete an already existing
 row. | 
 boolean | 
isDeleteCascade()
Gets if a delete on a master IDataBook should also delete all
 rows associated with the master row in this IDataBook. | 
 boolean | 
isDeleteEnabled()
Gets if deleting a row is enabled. | 
 boolean | 
isDeleting()
Gets if this row is currently being deleted, which means that it has been removed/deleted but this action has not yet been finalized.  | 
 boolean | 
isDetailChanged()
Gets if any associated detail rows have been modified.  | 
 boolean | 
isInsertAllowed()
Gets if it is possible to IDataBook.insert(boolean) a new row. | 
 boolean | 
isInsertEnabled()
Gets if inserting is enabled. | 
 boolean | 
isInserting()
Gets if this row is currently being inserted, which means that it has been created but has not yet been saved/finalized.  | 
 boolean | 
isLockAndRefetchEnabled()
Returns true if lock and refetch is enabled.  | 
protected  boolean | 
isMemFilter()
Returns true if the filter is handled in memory.  | 
protected  boolean | 
isMemSort()
Returns true if the sort is handled in memory.  | 
 boolean | 
isOpen()
Gets if this IDataBook is open. | 
 boolean | 
isOutOfSync()
Gets if this IDataBook is out of sync with its master. | 
 boolean | 
isReadOnly()
Gets if this IDataBook is read only. | 
 boolean | 
isSelfJoined()
Gets if this IDataBook has been joined with itself. | 
 boolean | 
isSortDataRowOnSave()
Is true, if the current saved row should be moved to the correct possition according to the set SortDefinition.  | 
 boolean | 
isUpdateAllowed()
Gets if it is possible to update an
 already existing row. | 
 boolean | 
isUpdateEnabled()
Gets if IDataRow.setValue(String, Object) updating a row is enabled. | 
 boolean | 
isUpdating()
Gets if this row is currently being updated, which means that its values are changed but these changes have not yet been saved/finalized.  | 
 boolean | 
isWritableColumnChanged()
Gets if there was a writeable column changed.  | 
protected  boolean | 
isWritebackEnabled()
Returns true if this data book should write its changes to the storage.  | 
protected  SortDefinition | 
keepSortableColumns(SortDefinition pSortDefinition)
Returns a new SortDefinition with only the ColumnDefinition.isSortable() columns
 from the given SortDefinition. | 
 void | 
notifyDetailChanged()
Notifies the master IDataBook that one or more detail rows have
 changed. | 
 void | 
notifyMasterChanged()
Notifies this IDataBook that its master IDataBook has
 changed. | 
 void | 
notifyRepaintControls()
Informs all registered controls that there are new
 values and that they must redraw themselves. | 
 void | 
open()
Opens this IDataBook. | 
 void | 
reload()
Reloads all rows from the storage, any changes are discarded.  | 
 void | 
reload(IDataBook.SelectionMode pSelectionMode)
Reloads all rows from the storage (any changes are discarded) and applies the given IDataBook.SelectionMode to this reload operation. | 
 void | 
reloadDataPage(IDataBook.SelectionMode pSelectionMode)
Reload the current DataPage with the pSelectionMode.  | 
protected  void | 
reloadIntern()
Reloads without sending before reload event.  | 
 void | 
removeDataPage(IDataRow pMasterDataRow,
               TreePath pTreePath)
Removes the DataPage to the specified master DataRow or TreePath. e.g.  | 
 void | 
removeDetailDataBook(IDataBook pDetailDataBook)
Unregisters the given IDataBook as a detail IDataBook. | 
 void | 
restoreAllRows()
Restores all rows to a state without changes.  | 
 void | 
restoreDataPage()
Restores all rows in the current DataPage.  | 
 void | 
restoreSelectedRow()
Restores the currently selected row to a state without changes.  | 
 void | 
saveAllRows()
Saves all IDataRows which have been changed, it is the same as
 IDataBook.saveSelectedRow() except that it is a mass operation on all
 rows. | 
 void | 
saveDataPage()
Saves all rows in the current DataPage.  | 
 void | 
saveEditingControls()
Informs all registered controls that they should
 save their values. | 
 void | 
saveSelectedRow()
Saves the currently selected row.  | 
 int | 
searchNext(ICondition pCondition)
Searches for the first occurrence of an IDataRow which matches
 the given ICondition and returns its index. | 
 int | 
searchNext(ICondition pCondition,
           int pRowNum)
Searches for the next occurrence of an IDataRow which matches the
 given ICondition and returns its index. | 
 int | 
searchPrevious(ICondition pCondition)
Searches for the last occurrence of an IDataRow which matches the
 given ICondition and returns its index. | 
 int | 
searchPrevious(ICondition pCondition,
               int pRowNum)
Searches for the previous occurrence of an IDataRow which matches
 the given ICondition and returns its index. | 
 void | 
setAdditionalDataRowVisible(boolean pVisible)
Set true, if the additional data row is visible.  | 
 void | 
setDataSource(IDataSource pDataSource)
Sets the IDataSource to use, which allows the IDataBook
 to retrieve and set data. | 
 void | 
setDeleteCascade(boolean pDeleteCascade)
Sets if a delete on a master IDataBook should also delete all
 rows associated with the master row in this IDataBook. | 
 void | 
setDeleteEnabled(boolean pDeleteEnabled)
Sets if deleting a row is enabled. | 
 void | 
setFilter(ICondition pFilter)
Sets the filter that is used. | 
 void | 
setInsertEnabled(boolean pInsertEnabled)
Sets if inserting is enabled. | 
 void | 
setLockAndRefetchEnabled(boolean pLockAndRefetchEnabled)
Sets whether if lock and refetch is enabled.  | 
 void | 
setMasterReference(ReferenceDefinition pMasterReference)
Sets the master reference that is going to be
 used. | 
protected  void | 
setMemFilter(boolean pMemFilter)
Sets if the sort is handled in memory.  | 
protected  void | 
setMemSort(boolean pMemSort)
Sets if the sort is handled in memory.  | 
 void | 
setName(java.lang.String pName)
Sets the name to use.  | 
 void | 
setReadAhead(int pReadAheadRowCount)
Sets the count of rows which are read ahead from the IDBAccess.  | 
 void | 
setReadOnly(boolean pReadOnly)
Sets if this IDataBook is read only. | 
 void | 
setReadOnlyChecker(IReadOnlyChecker pReadOnlyChecker)
Sets the IReadOnlyChecker. | 
 void | 
setReadOnlyChecker(java.lang.Object pReadOnlyCheckerObject,
                   java.lang.String pMethodName)
Sets the read only checker.  | 
 void | 
setReadOnlyWithoutSave(boolean pReadOnly)
Sets the databook readonly but does not automatically save.  | 
 void | 
setRootReference(ReferenceDefinition pTreeRootReference)
Sets the tree root reference.  | 
 void | 
setRowCalculator(IRowCalculator pRowCalculator)
Sets the IRowCalculator. | 
 void | 
setRowCalculator(java.lang.Object pRowCalculatorObject,
                 java.lang.String pMethodName)
Sets the row calculator.  | 
 void | 
setRowDefinition(IRowDefinition pRowDefinition)
Sets the RowDefinition to use. | 
 void | 
setSelectedColumn(java.lang.String pColumnName)
Sets the selected column based on the given name.  | 
 void | 
setSelectedDataPageRow(int pDataRowIndex)
Sets the selected row index relatively to the current IDataPage. | 
 void | 
setSelectedRow(int pDataRowIndex)
Sets the selected IDataRow to the given index. | 
protected  void | 
setSelectedRowInternal(int pDataRowIndex)
Sets the selected row with throwing any changed events.  | 
 void | 
setSelectionMode(IDataBook.SelectionMode pSelectionMode)
Sets the IDataBook.SelectionMode that should be used. | 
 void | 
setSort(SortDefinition pSort)
Sets the SortDefinition that is used. | 
 void | 
setSortDataRowOnSave(boolean pSortDataRowOnSave)
Is true, if the current saved row should be moved to the correct possition according to the set SortDefinition.  | 
 void | 
setTreePath(TreePath pTreePath)
Sets the tree current tree path.  | 
 void | 
setUpdateEnabled(boolean pUpdateEnabled)
Sets if IDataRow.setValue(String, Object) updating a row is enabled. | 
 void | 
setValue(java.lang.String pColumnName,
         java.lang.Object pValue)
Sets the value of the named column.  | 
 void | 
setValues(java.lang.String[] pColumnNames,
          java.lang.Object[] pValues)
Sets all columns of the given names to the given values.  | 
protected  void | 
setWritebackEnabled(boolean pWritebackEnabled)
Sets if this data book should write back its changes to the storage.  | 
 void | 
setWritebackIsolationLevel(IDataBook.WriteBackIsolationLevel pIsolationLevel)
Sets the IDataBook.WriteBackIsolationLevel to use. | 
protected  void | 
store()
It stores the changes in memory as stored.  | 
 java.lang.String | 
toString()
 | 
 void | 
update()
Sets the currently selected row as "updating".  | 
| Methods inherited from class com.sibvisions.rad.model.mem.ChangeableDataRow | 
|---|
getOriginalRow, restore, setDeleting, setDetailChanged, setInserting, setUID, setUpdating, setValueIntern | 
| Methods inherited from class com.sibvisions.rad.model.mem.DataRow | 
|---|
compareTo, compareTo, createEmptyDataRow, createEmptyRow, equals, equals, eventValuesChanged, eventValuesChanged, getControls, getValueAsString, getValuesAsString, hasControls, hashCode, invokeCancelEditingControls, invokeRepaintListeners, invokeSaveEditingControls, removeControl, setDefaultValues, setValuesIntern | 
| Methods inherited from class java.lang.Object | 
|---|
clone, getClass, notify, notifyAll, wait, wait, wait | 
| Methods inherited from interface javax.rad.model.IChangeableDataRow | 
|---|
getOriginalRow | 
| Methods inherited from interface javax.rad.model.IDataRow | 
|---|
compareTo, createEmptyDataRow, createEmptyRow, equals, eventValuesChanged, eventValuesChanged, getControls, getValueAsString, getValuesAsString, removeControl | 
| Methods inherited from interface java.lang.Comparable | 
|---|
compareTo | 
| Field Detail | 
|---|
protected boolean bMemSort
protected boolean bMemFilter
protected DataRow rowInstance1
protected DataRow rowInstance2
protected IDataBook rootDataBook
| Constructor Detail | 
|---|
public MemDataBook()
MemDataBook with an empty RowDefinition.
public MemDataBook(RowDefinition pRowDefinition)
MemDataBook with the given RowDefinition.
pRowDefinition - the row definition for the data book| Method Detail | 
|---|
public IDataBook getDataBook()
IDataBook.
getDataBook in interface IDataPageIDataBook.public java.lang.String getName()
getName in interface IDataBookgetName in interface INamedObjectIDataBook.setName(String)
public void setName(java.lang.String pName)
             throws ModelException
 The name can only be set if the IDataBook is not already
 open.
setName in interface IDataBooksetName in interface INamedObjectpName - the name to use.
ModelException - if the IDataBook is already
             open.IDataBook.getName()
public void setWritebackIsolationLevel(IDataBook.WriteBackIsolationLevel pIsolationLevel)
                                throws ModelException
IDataBook.WriteBackIsolationLevel to use.
 
 The default value should be IDataBook.WriteBackIsolationLevel.DATA_ROW.
setWritebackIsolationLevel in interface IDataBookpIsolationLevel - the IDataBook.WriteBackIsolationLevel to use.
ModelException - if setting DATAROW level fails, because saveAllRows fails.IDataBook.getWritebackIsolationLevel(), 
IDataBook.WriteBackIsolationLevelpublic IDataBook.WriteBackIsolationLevel getWritebackIsolationLevel()
IDataBook.WriteBackIsolationLevel that is used.
 
 The default value should be IDataBook.WriteBackIsolationLevel.DATA_ROW.
getWritebackIsolationLevel in interface IDataBookIDataBook.WriteBackIsolationLevel that is used.IDataBook.setWritebackIsolationLevel(WriteBackIsolationLevel), 
IDataBook.WriteBackIsolationLevel
public void setRowDefinition(IRowDefinition pRowDefinition)
                      throws ModelException
RowDefinition to use.
 
 The IRowDefinition contains all the information about the columns
 and it can only be set if the IDataBook is not already
 open.
setRowDefinition in interface IDataBookpRowDefinition - the RowDefinition to use.
ModelException - if the IDataBook is already
             open.IDataRow.getRowDefinition(), 
IRowDefinitionpublic IDataSource getDataSource()
IDataSource that is used.
getDataSource in interface IDataBookIDataSource that is used.IDataBook.setDataSource(IDataSource), 
IDataSource
public void setDataSource(IDataSource pDataSource)
                   throws ModelException
IDataSource to use, which allows the IDataBook
 to retrieve and set data.
 
 The IDataSource can only be set if the IDataBook is not
 already open.
setDataSource in interface IDataBookpDataSource - the IDataSource to use.
ModelException - if the IDataBook is already
             open.IDataBook.getDataSource(), 
IDataSourcepublic ReferenceDefinition getMasterReference()
master reference that is used.
 
 The master reference defines that this
 IDataBook is a detail of the defined master. If the masters
 selection changes, the current IDataPage will change accordingly.
getMasterReference in interface IDataBookmaster reference that is used.
public void setMasterReference(ReferenceDefinition pMasterReference)
                        throws ModelException
master reference that is going to be
 used.
 
 The master reference defines that this
 IDataBook is a detail of the defined master. If the masters
 selection changes, the current IDataPage will change accordingly.
 The master will also be notified if any change that occurs (like that a
 row is inserted / updated /
 deleted.
 
 
 The master reference can only be set if the
 IDataBook is not already open.
setMasterReference in interface IDataBookpMasterReference - the master reference that is going to be used.
ModelException - if the IDataBook is already
             open.IDataBook.getMasterReference(), 
ReferenceDefinitionpublic boolean isSelfJoined()
IDataBook has been joined with itself.
isSelfJoined in interface IDataBooktrue if this IDataBook has been joined with
         itself.
public IDataPage getDataPage(TreePath pTreePath)
                      throws ModelException
IDataPage for the given TreePath.
getDataPage in interface IDataBookpTreePath - the TreePath.
IDataPage for the given TreePath.
ModelException - if the pRootRow or pTreePath don't contains the
             master columns from the master
             ReferenceDefinition
public IDataPage getDataPage(IDataRow pRootRow,
                             TreePath pTreePath)
                      throws ModelException
IDataPage for the given TreePath and the given
 root row.
getDataPage in interface IDataBookpRootRow - the root row.pTreePath - the TreePath.
IDataPage for the given TreePath and
         root row.
ModelException - if the pRootRow or pTreePath don't contains the
             master columns from the master
             ReferenceDefinition
public IDataPage getDataPageWithRootRow(IDataRow pRootDataRow)
                                 throws ModelException
IDataPage to specified root row
 from the root DataBook. If it doesn't exists, it will be
 created and returned.
getDataPageWithRootRow in interface IDataBookpRootDataRow - the root IDataRow of the root
            DataBook.
IDataPage to specified master row
         from the master DataBook.
ModelException - if the pRootRow don't contains the master columns
             from the master ReferenceDefinitionpublic ReferenceDefinition getRootReference()
getRootReference in interface IDataBook
public void setRootReference(ReferenceDefinition pTreeRootReference)
                      throws ModelException
setRootReference in interface IDataBookpTreeRootReference - the tree root reference.
ModelException - if the IDataBook is openpublic TreePath getTreePath()
getTreePath in interface IDataBook
public void setTreePath(TreePath pTreePath)
                 throws ModelException
setTreePath in interface IDataBookpTreePath - the tree root reference.
ModelException - if the IDataBook is openpublic void notifyMasterChanged()
IDataBook that its master IDataBook has
 changed.
notifyMasterChanged in interface IDataBook
public void removeDataPage(IDataRow pMasterDataRow,
                           TreePath pTreePath)
                    throws ModelException
removeDataPage in interface IDataBookpMasterDataRow - the MasterDataRow to use.pTreePath - the TreePath to use.
ModelException - if the remove of the DataPage didn't worked out.public IDataBook.SelectionMode getSelectionMode()
IDataBook.SelectionMode that is used.
getSelectionMode in interface IDataBookIDataBook.SelectionMode that is used.IDataBook.setSelectionMode(SelectionMode)public void setSelectionMode(IDataBook.SelectionMode pSelectionMode)
IDataBook.SelectionMode that should be used.
setSelectionMode in interface IDataBookpSelectionMode - the IDataBook.SelectionMode that should be used.IDataBook.getSelectionMode()public boolean isInsertAllowed()
IDataBook.insert(boolean) a new row.
 
 An insert might not be possible if it is either disabled or if the storage does not allow an insert.
isInsertAllowed in interface IDataBooktrue if it is possible to IDataBook.insert(boolean) a row.IDataBook.isInsertEnabled(), 
IDataBook.setInsertEnabled(boolean)public boolean isInsertEnabled()
inserting is enabled.
isInsertEnabled in interface IDataBooktrue if inserting is enabled.IDataBook.isInsertAllowed(), 
IDataBook.setInsertEnabled(boolean)public void setInsertEnabled(boolean pInsertEnabled)
inserting is enabled.
setInsertEnabled in interface IDataBookpInsertEnabled - true if inserting
            is enabled.IDataBook.isInsertAllowed(), 
IDataBook.isInsertEnabled()
public boolean isUpdateAllowed()
                        throws ModelException
update an
 already existing row.
 
 An update might not be possible of the it is either
 disabled, no no row
 is selected or if the storage does not allow an update.
isUpdateAllowed in interface IDataBooktrue if it is possible to
         update a row.
ModelException - if the state could not be determined.IDataBook.isUpdateEnabled(), 
IDataBook.setUpdateEnabled(boolean)
public boolean isUpdateEnabled()
                        throws ModelException
IDataRow.setValue(String, Object) updating a row is enabled.
isUpdateEnabled in interface IDataBooktrue if IDataRow.setValue(String, Object) updating a row
         is enabled.
ModelException - if the state could not be determined.IDataBook.isUpdateAllowed(), 
IDataBook.setUpdateEnabled(boolean)public void setUpdateEnabled(boolean pUpdateEnabled)
IDataRow.setValue(String, Object) updating a row is enabled.
setUpdateEnabled in interface IDataBookpUpdateEnabled - true if IDataRow.setValue(String, Object)
            updating a row is enabled.IDataBook.isUpdateAllowed(), 
IDataBook.isUpdateEnabled()
public boolean isDeleteAllowed()
                        throws ModelException
delete an already existing
 row.
 
 A delete might not be possible of the it is either
 disabled, no no row
 is selected or if the storage does not allow a delete.
isDeleteAllowed in interface IDataBooktrue if it is possible to delete a row.
ModelException - if the state could not be determined.IDataBook.isDeleteEnabled(), 
IDataBook.setDeleteEnabled(boolean)
public boolean isDeleteEnabled()
                        throws ModelException
deleting a row is enabled.
isDeleteEnabled in interface IDataBooktrue if deleting a row is enabled.
ModelException - if the state could not be determined.IDataBook.isDeleteAllowed(), 
IDataBook.setDeleteCascade(boolean)public void setDeleteEnabled(boolean pDeleteEnabled)
deleting a row is enabled.
setDeleteEnabled in interface IDataBookpDeleteEnabled - true if deleting a row is
            enabled.IDataBook.isDeleteAllowed(), 
IDataBook.isDeleteEnabled()public boolean isReadOnly()
IDataBook is read only.
isReadOnly in interface IDataBooktrue this IDataBook is read only.IDataBook.setReadOnly(boolean)
public void setReadOnly(boolean pReadOnly)
                 throws ModelException
IDataBook is read only.
 
 If there are changes and the IDataBook is set to read only, the
 changed data is saved.
setReadOnly in interface IDataBookpReadOnly - true if this IDataBook is read
            only.
ModelException - if saving any changes failed.IDataBook.isReadOnly()public boolean isOpen()
IDataBook is open.
isOpen in interface IDataBooktrue if this IDataBook is open.IDataBook.open()
public void open()
          throws ModelException
IDataBook.
 
 "Open" means that all actions are performed which are needed to deliver
 data to the user, an IDataBook that is open can be used for
 querying and changing data.
 
Implementations should perform all needed set up work in this method (like reading metadata from the storage).
open in interface IDataBookModelException - if there is no name set, or if
             there is no column in the row
             definition, or if there is no IDataBook.getDataSource() set.public void close()
IDataBook.
 
 A closed IDataBook has the same state as an not
 open IDataBook. It can't be used to
 query or change data, but it can be reopened.
 
Implementations should performs all clean up in this method and the (cached) data can be discarded at this point.
close in interface IDataBook
public int getRowCount()
                throws ModelException
getRowCount in interface IDataPageModelException - if the number of rows could not be determined.
public int getSelectedRow()
                   throws ModelException
 The index might -1 if there is no row selected or if this
 IDataBook is not IDataBook.isOpen().
getSelectedRow in interface IDataBook-1 if there is none
         selected or the IDataBook is not open.
ModelException - if the synchronization with the master failed.IDataBook.setSelectedRow(int)
public void setSelectedRow(int pDataRowIndex)
                    throws ModelException
IDataRow to the given index. If the given index
 is less than zero or greater than the number of rows available, no row
 will be selected (if there is already a row selected, it will be
 unselected).
 If the row at the given index is currently not in memory, it will be loaded from the storage.
 Depending on the set IDataBook.WriteBackIsolationLevel changing the
 selection might save the previously selected row to the storage.
 
 Before the selection is changed the
 IControl.saveEditing() method of all
 registered IControls is invoked. Afterwards
 the IDataBook.eventBeforeRowSelected() and
 IDataBook.eventAfterRowSelected() events are fired in this order. The last
 action is that the IControl.notifyRepaint()
 method of all registered IControls is invoked.
setSelectedRow in interface IDataBookpDataRowIndex - the index of the IDataRow to select. If it
            is less than zero or greater than the number of rows
            available, no row will be selected and an eventually already
            selected row will be unselected.
ModelException - if the IDataBook is not open or if the IDataRow at the given index could not
             be fetched from the storage or if the master
             IDataBook does not have a selected row or if the
             synchronization with the master failed.IDataBook.getSelectedRow()
public java.lang.String getSelectedColumn()
                                   throws ModelException
 The returned name might be null if there is no column selected.
getSelectedColumn in interface IDataBooknull if there is none
         selected.
ModelException - if the synchronization with the master failed.IDataBook.setSelectedColumn(String)
public void setSelectedColumn(java.lang.String pColumnName)
                       throws ModelException
 If the given column name is null no column is selected (if there
 is already a row selected, it will be unselected).
 
 Before the selection changes the IDataBook.eventBeforeColumnSelected() is
 fired and afterwards the IDataBook.eventAfterColumnSelected() is fired.
setSelectedColumn in interface IDataBookpColumnName - the name of the column to select, can be
            null to remove the selection (if any).
ModelException - if the IDataBook is not open or if there is no column with the given name or if
             synchronization with the master failed.IDataBook.getSelectedColumn()public boolean isDeleteCascade()
IDataBook should also delete all
 rows associated with the master row in this IDataBook.
isDeleteCascade in interface IDataBooktrue if the rows in this IDataBook should be
         deleted if the master row is deleted.IDataBook.setDeleteCascade(boolean)public void setDeleteCascade(boolean pDeleteCascade)
IDataBook should also delete all
 rows associated with the master row in this IDataBook.
setDeleteCascade in interface IDataBookpDeleteCascade - true if the rows in this IDataBook
            should be deleted if the master row is deleted.IDataBook.isDeleteCascade()
public int insert(boolean pBeforeRow)
           throws ModelException
IDataRow at the current position. If there is
 currently no IDataRow is selected the row will be inserted at the
 beginning. After this operation the new IDataRow will be
 selected.
 
 Note that this is an selected row changing
 operation.
 
The following events are fired in the following order:
IControl.saveEditing() is invoked on all
 registered IControls.IDataBook.eventBeforeInserting()IDataBook.eventAfterInserting()IDataBook.eventAfterRowSelected()IControl.notifyRepaint() is invoked on all
 registered IControls.
insert in interface IDataBookpBeforeRow - if the new row should be inserted before the current
            selection.
ModelException - if the IDataBook is not open, or if saving of already existing changes failed, or if
             IDataBook.isInsertAllowed() is disabled, or if saving the row
             to the storage failed.
public void update()
            throws ModelException
value is set. If there
 is no row selected a ModelException is thrown.
 The storage might want to reload and eventually lock the row that is being updated.
 Before the update is executed the IDataBook.eventBeforeUpdating() is fired
 and afterwards the IDataBook.eventAfterUpdating() is fired.
update in interface IDataBookModelException - if the IDataBook is not open, or if IDataBook.isUpdateAllowed() is disabled (for
             example no row is selected), or if there was an error when
             setting the state.
public void delete()
            throws ModelException
ModelException is thrown. It deletes the selected.
 
 Before the delete is executed the IDataBook.eventBeforeDeleting() is fired
 and afterwards the IDataBook.eventAfterDeleting() is fired. As the row has
 been deleted at that point, the selected row
 is changed to the next row.
delete in interface IDataBookModelException - if the IDataBook is not open, or if IDataBook.isDeleteAllowed() is disabled (for
             example no row is selected), or if there was an error when
             setting the state.
@Deprecated
public void deleteAllDataRows()
                       throws ModelException
IDataRows which are currently available, it is the
 same as IDataBook.delete() except that it is a mass operation on all rows.
 
 Deleting all rows does only delete the currently available rows, rows
 which do not match the currently applied filter will
 not be deleted.
 
 First the row is selected and afterwards
 deleted.
 
These events are fired for all rows.
deleteAllDataRows in interface IDataBookModelException - if the IDataBook is not open or if the changes (because of the selection change)
             could not be saved.IDataBook.delete()
public void deleteAllRows()
                   throws ModelException
IDataRows which are currently available, it is the
 same as IDataBook.delete() except that it is a mass operation on all rows.
 
 Deleting all rows does only delete the currently available rows, rows
 which do not match the currently applied filter will
 not be deleted.
 
 First the row is selected and afterwards
 deleted.
 
These events are fired for all rows.
deleteAllRows in interface IDataBookModelException - if the IDataBook is not open or if the changes (because of the selection change)
             could not be saved.IDataBook.delete()public void notifyDetailChanged()
IDataBook that one or more detail rows have
 changed.
notifyDetailChanged in interface IDataBook
public IChangeableDataRow getDataRow(int pDataRowIndex)
                              throws ModelException
IChangeableDataRow at the specified index.
 Returns null if there is no row at the specified index.
 If the row is currently not in memory, it will be fetched from the underlying storage.
getDataRow in interface IDataPagepDataRowIndex - the index of the IChangeableDataRow to get.
IChangeableDataRow at the specified index,
         null if there is no row at the specified index.
ModelException - if the IChangeableDataRow at the specified
             index can no be got.
public ChangeableDataRow getAdditionalDataRow()
                                       throws ModelException
getAdditionalDataRow in interface IDataBookModelException - if the data book is not open.public boolean isAdditionalDataRowVisible()
isAdditionalDataRowVisible in interface IDataBookpublic void setAdditionalDataRowVisible(boolean pVisible)
setAdditionalDataRowVisible in interface IDataBookpVisible - true, if the additional data row is visible.
public int getSelectedDataPageRow()
                           throws ModelException
IDataPage.
getSelectedDataPageRow in interface IDataBookIDataPage.
ModelException - if a exception occurs during synchronize.
public void setSelectedDataPageRow(int pDataRowIndex)
                            throws ModelException
IDataPage.
setSelectedDataPageRow in interface IDataBookpDataRowIndex - the selected row index relatively to the current
            IDataPage.
ModelException - if the row with the iDataRowIndex couldn't get
             from the storage or if the IDataBook isn't open
             or the master IDataBook has no selected row.
public IDataRow getOriginalDataRow()
                            throws ModelException
IDataRow, before any changes were performed.
getOriginalDataRow in interface IChangeableDataRowgetOriginalDataRow in class ChangeableDataRowIDataRow, before any changes were performed.
ModelException - if the original IDataRow could not be got.
public boolean isWritableColumnChanged()
                                throws ModelException
isWritableColumnChanged in interface IChangeableDataRowisWritableColumnChanged in class ChangeableDataRowtrue if there was a writeable column changed.
ModelException - if the state could not be determined.
public boolean isDeleting()
                   throws ModelException
isDeleting in interface IChangeableDataRowisDeleting in class ChangeableDataRowModelException - if the state could not be determined.
public boolean isUpdating()
                   throws ModelException
isUpdating in interface IChangeableDataRowisUpdating in class ChangeableDataRowtrue if this row is currently being changed.
ModelException - if the state could not be determined.
public boolean isInserting()
                    throws ModelException
isInserting in interface IChangeableDataRowisInserting in class ChangeableDataRowtrue if this row is currently being inserted.
ModelException - if the state could not be determined.
public boolean isDetailChanged()
                        throws ModelException
isDetailChanged in interface IChangeableDataRowisDetailChanged in class ChangeableDataRowtrue if any associated detail rows have been modified.
ModelException - if the state of the detail rows could not be
             determined.
public java.lang.Object getUID()
                        throws ModelException
IDataRow.
getUID in interface IChangeableDataRowgetUID in class ChangeableDataRowIDataRow.
ModelException - if the unique identifier could not be determined.public ICondition getFilter()
filter. Can be null if none is
 used or set.
getFilter in interface IDataBookfilter, null if none used or
         set.IDataBook.setFilter(ICondition), 
ICondition
public void setFilter(ICondition pFilter)
               throws ModelException
filter that is used. If the given
 filter is null no filter will be applied to
 the data.
 
 This call is schematically equal to IDataBook.reload() with the exception
 that changes are saved before the filter is applied.
setFilter in interface IDataBookpFilter - the filter to apply.
ModelException - if the IDataBook is not open or the data could not be reloaded.IDataBook.getFilter(), 
IConditionpublic SortDefinition getSort()
SortDefinition. Can be null if there is
 none set or used.
getSort in interface IDataBookSortDefinition, null if there is none
         set or used.IDataBook.setSort(SortDefinition), 
SortDefinition
public void setSort(SortDefinition pSort)
             throws ModelException
SortDefinition that is used. The given
 SortDefinition can be null for no sorting.
 
 This is schematically equal top IDataBook.setFilter(ICondition).
setSort in interface IDataBookpSort - the SortDefinition to use. Can be null for
            no sorting.
ModelException - if the changes could not be stored.IDataBook.getSort(), 
SortDefinition
public void reload()
            throws ModelException
If the backing instance is a database, it means that all data has to be refetched from the database.
 Before the reload the IControl.cancelEditing()
 of all registered IControls is invoked. After
 that the IDataBook.eventBeforeReload() is fired and afterwards the
 IDataBook.eventAfterReload(). Afterwards the
 IControl.notifyRepaint() method of all
 registered IControls is invoked.
reload in interface IDataBookModelException - if the IDataBook is not open or if the reload failed.IDataBook.reload(SelectionMode)
public void reload(IDataBook.SelectionMode pSelectionMode)
            throws ModelException
IDataBook.SelectionMode to this reload operation.
 If the backing instance is a database, it means that all data has to be refetched from the database.
 Before the reload the IControl.cancelEditing()
 of all registered IControls is invoked. After
 that the IDataBook.eventBeforeReload() is fired and afterwards the
 IDataBook.eventAfterReload(). Afterwards the
 IControl.notifyRepaint() method of all
 registered IControls is invoked.
reload in interface IDataBookpSelectionMode - the Selection mode to use
ModelException - if the IDataBook is not open or if the reload failed.IDataBook.reload()
public void restoreSelectedRow()
                        throws ModelException
 "Restoring" means that all changes made by the user are reverted, if this
 IDataBook is backed by a database it would mean to refetch the
 row.
 
 Before the restore the IDataBook.eventBeforeRestore() is fired and
 afterwards the IDataBook.eventAfterRestore() is fired. Afterwards the
 IControl.notifyRepaint() method of all
 registered IControls is invoked.
restoreSelectedRow in interface IDataBookModelException - if the IDataBook is not open or if the row could not be restored.IDataBook.restoreAllRows()
public void restoreAllRows()
                    throws ModelException
 "Restoring" means that all changes made by the user are reverted, if this
 IDataBook is backed by a database it would mean to refetch the
 row.
 
 Restoring all rows does restore all rows, including those which do not
 match the currently set filter.
 
 Before the restore of each row the IDataBook.eventBeforeRestore() is fired
 and afterwards the IDataBook.eventAfterRestore() is fired. Afterwards the
 IControl.notifyRepaint() method of all
 registered IControls is invoked.
restoreAllRows in interface IDataBookModelException - if the IDataBook is not open or if the row could not be restored.IDataBook.restoreSelectedRow()
public void saveSelectedRow()
                     throws ModelException
 Depending on the state of the row, either IDataBook.eventBeforeInserted()/
 IDataBook.eventAfterInserted(), IDataBook.eventBeforeUpdated()/
 IDataBook.eventAfterUpdated() or IDataBook.eventBeforeDeleted()/
 IDataBook.eventAfterDeleted() are fired. Afterwards the
 IControl.notifyRepaint() method of all
 registered IControls is invoked.
saveSelectedRow in interface IDataBookModelException - if the IDataBook is not open or if the changes could not be saved.IDataBook.saveAllRows()
public void saveDataPage()
                  throws ModelException
saveDataPage in interface IDataBookModelException - if saveSelected() fails
public void saveAllRows()
                 throws ModelException
IDataRows which have been changed, it is the same as
 IDataBook.saveSelectedRow() except that it is a mass operation on all
 rows.
 
 Saving all rows does save all rows, including those which do not match
 the currently set filter.
 
 Depending on the state of the rows, either IDataBook.eventBeforeInserted()
 / IDataBook.eventAfterInserted(), IDataBook.eventBeforeUpdated()/
 IDataBook.eventAfterUpdated() or IDataBook.eventBeforeDeleted()/
 IDataBook.eventAfterDeleted() are fired. Afterwards the
 IControl.notifyRepaint() method of all
 registered IControls is invoked.
 
These events are fired for all changed rows.
saveAllRows in interface IDataBookModelException - if the IDataBook is not open or if the changes could not be saved.IDataBook.saveSelectedRow()public boolean isOutOfSync()
IDataBook is out of sync with its master.
isOutOfSync in interface IDataBooktrue if this IDataBook is out of sync with its
         master.
public boolean isAllFetched()
                     throws ModelException
IDataRows have been fetched from the storage, and
 there is nothing more to fetch.
isAllFetched in interface IDataPagetrue if all IDataRows have been fetched.
ModelException - if determining if all IDataRows have been
             fetched failed.
public void fetchAll()
              throws ModelException
IDataRows from the storage.
fetchAll in interface IDataPageModelException - if there is a problem while fetching the rows.
public IDataRow getMasterDataRow()
                          throws ModelException
master row.
getMasterDataRow in interface IDataPagemaster row.
ModelException - if the master row could not be
             fetched for some reason.public void addDetailDataBook(IDataBook pDetailDataBook)
IDataBook as a detail IDataBook.
addDetailDataBook in interface IDataBookpDetailDataBook - the IDataBook to register as a detail
            IDataBook.IDataBook.removeDetailDataBook(IDataBook), 
IDataBook.getDetailDataBooks()public void removeDetailDataBook(IDataBook pDetailDataBook)
IDataBook as a detail IDataBook.
removeDetailDataBook in interface IDataBookpDetailDataBook - the IDataBook to unregister as a detail
            IDataBook.IDataBook.addDetailDataBook(IDataBook), 
IDataBook.getDetailDataBooks()public IDataBook[] getDetailDataBooks()
IDataBooks as array. The returned array might be
 empty if there are no detail IDataBooks.
getDetailDataBooks in interface IDataBookIDataBooks as array, the array might be empty
         if there are none.IDataBook.addDetailDataBook(IDataBook), 
IDataBook.removeDetailDataBook(IDataBook)
@Deprecated
public int[] getChangedDataRows()
                         throws ModelException
IDataRow
 s. Returns an empty array if there are no changed IDataRows.
getChangedDataRows in interface IDataPageIDataRows. An empty array if there are no changes.
ModelException - if a exception occurs during synchronize.
public int[] getChangedRows()
                     throws ModelException
IDataRow
 s. Returns an empty array if there are no changed IDataRows.
getChangedRows in interface IDataPageIDataRows. An empty array if there are no changes.
ModelException - if a exception occurs during synchronize.
public IDataPage getDataPage(IDataRow pMasterDataRow)
                      throws ModelException
IDataPage to specified master row
 from the master DataBook. If it doesn't exists, it will be
 created and returned.
getDataPage in interface IDataBookpMasterDataRow - the master IDataRow of the master
            DataBook.
IDataPage to specified master row
         from the master DataBook.
ModelException - if the pMasterRow don't contains the master
             columns from the master ReferenceDefinition
public boolean hasDataPage(IDataRow pMasterDataRow)
                    throws ModelException
IDataPage to specified master row from
 the master DataBook exists.
hasDataPage in interface IDataBookpMasterDataRow - the master IDataRow of the master
            DataBook.
IDataPage to specified master row from
         the master DataBook exists.
ModelException - if the pMasterRow don't contains the master
             columns from the master ReferenceDefinition
public int searchNext(ICondition pCondition)
               throws ModelException
IDataRow which matches
 the given ICondition and returns its index. -1 is
 returned if there is no IDataRow that matches.
 This method might fetch more rows from the storage as needed.
searchNext in interface IDataPagepCondition - the ICondition.
IDataRow, -1 if
         there is none.
ModelException - if searching through and/or fetching the
             IDataRows failed.
public int searchNext(ICondition pCondition,
                      int pRowNum)
               throws ModelException
IDataRow which matches the
 given ICondition and returns its index. The search is started at
 the given index. -1 is returned if there is no IDataRow
 that matches.
 This method might fetch more rows from the storage as needed.
searchNext in interface IDataPagepCondition - the ICondition.pRowNum - the index at which to start, inclusive.
IDataRow, -1 if
         there is none.
ModelException - if searching through and/or fetching the
             IDataRows failed.
public int searchPrevious(ICondition pCondition)
                   throws ModelException
IDataRow which matches the
 given ICondition and returns its index. -1 is returned if
 there is no IDataRow that matches.
 This method might fetch more rows from the storage as needed.
searchPrevious in interface IDataPagepCondition - the ICondition.
IDataRow, -1 if
         there is none.
ModelException - if searching through and/or fetching the
             IDataRows failed.
public int searchPrevious(ICondition pCondition,
                          int pRowNum)
                   throws ModelException
IDataRow which matches
 the given ICondition and returns its index. The search is started
 at the given index. -1 is returned if there is no
 IDataRow that matches.
 This method might fetch more rows from the storage as needed.
searchPrevious in interface IDataPagepCondition - the ICondition.pRowNum - the index at which to start, exclusive.
IDataRow, -1
         if there is none.
ModelException - if searching through and/or fetching the
             IDataRows failed.public IRowCalculator getRowCalculator()
IRowCalculator.
getRowCalculator in interface IDataBookIRowCalculator.public void setRowCalculator(IRowCalculator pRowCalculator)
IRowCalculator.
setRowCalculator in interface IDataBookpRowCalculator - the IRowCalculator.
public void setRowCalculator(java.lang.Object pRowCalculatorObject,
                             java.lang.String pMethodName)
pRowCalculatorObject - the object.pMethodName - the method name.
public static IRowCalculator createRowCalculator(java.lang.Object pRowCalculatorObject,
                                                 java.lang.String pMethodName)
pRowCalculatorObject - the object.pMethodName - the method name.
protected void calculateRow()
public IReadOnlyChecker getReadOnlyChecker()
IReadOnlyChecker.
getReadOnlyChecker in interface IDataBookIReadOnlyChecker.public void setReadOnlyChecker(IReadOnlyChecker pReadOnlyChecker)
IReadOnlyChecker.
setReadOnlyChecker in interface IDataBookpReadOnlyChecker - the IReadOnlyChecker..
public void setReadOnlyChecker(java.lang.Object pReadOnlyCheckerObject,
                               java.lang.String pMethodName)
pReadOnlyCheckerObject - the object.pMethodName - the method name.
public static IReadOnlyChecker createReadOnlyChecker(java.lang.Object pReadOnlyCheckerObject,
                                                     java.lang.String pMethodName)
pReadOnlyCheckerObject - the object.pMethodName - the method name.
public DataBookHandler eventBeforeRowSelected()
DataBookHandler for before row selected event.
 
 This event is fired before the selection of the
 current row changes.
 
This event fires every time the selection changes, not just if the selection is changed by the user.
eventBeforeRowSelected in interface IDataBookDataBookHandler for before row selected event.public DataBookHandler eventAfterRowSelected()
DataBookHandler for after row selected event.
 
 This event is fired after the selection of the
 current row changes.
 
This event fires every time the selection changes, not just if the selection is changed by the user.
eventAfterRowSelected in interface IDataBookDataBookHandler for after row selected event.public DataBookHandler eventBeforeInserting()
DataBookHandler for before inserting event.
 
 This event is fired before a new row is inserted
 .
eventBeforeInserting in interface IDataBookDataBookHandler for before inserting event.public DataBookHandler eventAfterInserting()
DataBookHandler for after inserting event.
 
 This event is fired after a new row is inserted.
eventAfterInserting in interface IDataBookDataBookHandler for after inserting event.public DataBookHandler eventBeforeInserted()
DataBookHandler for before inserted event.
 
 This event is fired before an inserted row is
 saved.
eventBeforeInserted in interface IDataBookDataBookHandler for before inserted event.public DataBookHandler eventAfterInserted()
DataBookHandler for after inserted event.
 
 This event is fired after an inserted row is
 saved.
eventAfterInserted in interface IDataBookDataBookHandler for after inserted event.public DataBookHandler eventBeforeUpdating()
DataBookHandler for before updating event.
 
 This event is fired before a row is updated.
eventBeforeUpdating in interface IDataBookDataBookHandler for before updating event.public DataBookHandler eventAfterUpdating()
DataBookHandler for after updating event.
 
 This event is fired after a row is updated.
eventAfterUpdating in interface IDataBookDataBookHandler for after updating event.public DataBookHandler eventBeforeUpdated()
DataBookHandler for before updated event.
 
 This event is fired before an updated row is
 saved.
eventBeforeUpdated in interface IDataBookDataBookHandler for before updated event.public DataBookHandler eventAfterUpdated()
DataBookHandler for after updated event.
 
 This event is fired after an updated row is
 saved.
eventAfterUpdated in interface IDataBookDataBookHandler for after updated event.public DataBookHandler eventBeforeDeleting()
DataBookHandler for before deleting event.
 
 This event is fired before a row is deleted.
eventBeforeDeleting in interface IDataBookDataBookHandler for before deleting event.public DataBookHandler eventAfterDeleting()
DataBookHandler for after deleting event.
 
 This event is fired after a row is deleted.
eventAfterDeleting in interface IDataBookDataBookHandler for after deleting event.public DataBookHandler eventBeforeDeleted()
DataBookHandler for before deleted event.
 
 This event is fired before a deleted row is
 saved.
eventBeforeDeleted in interface IDataBookDataBookHandler for before deleted event.public DataBookHandler eventAfterDeleted()
DataBookHandler for after deleted event.
 
 This event is fired after a deleted row is
 saved.
eventAfterDeleted in interface IDataBookDataBookHandler for after deleted event.public DataBookHandler eventBeforeRestore()
DataBookHandler for before restore event.
 
 This event is fired before a row is
 restored.
eventBeforeRestore in interface IDataBookDataBookHandler for before restore event.public DataBookHandler eventAfterRestore()
DataBookHandler for after restore event.
 
 This event is fired after a row is restored
 .
eventAfterRestore in interface IDataBookDataBookHandler for after restore event.public DataBookHandler eventBeforeReload()
DataBookHandler for before reload event.
 
 This event is fired before the IDataBook is reloaded.
eventBeforeReload in interface IDataBookDataBookHandler for before reload event.public DataBookHandler eventAfterReload()
DataBookHandler for after reload event.
 
 This event is fired after the IDataBook is reloaded.
eventAfterReload in interface IDataBookDataBookHandler for after reload event.public DataBookHandler eventBeforeFilterChanged()
DataBookHandler for before filter changed event.
 
 This event is fired before the filter
 changes.
eventBeforeFilterChanged in interface IDataBookDataBookHandler for before filter changed event.public DataBookHandler eventAfterFilterChanged()
DataBookHandler for after filter changed event.
 
 This event is fired after the filter
 changes.
eventAfterFilterChanged in interface IDataBookDataBookHandler for after filter changed event.public DataBookHandler eventBeforeSortChanged()
DataBookHandler for before sort changed event.
 
 This event is fired before the sort
 changes.
eventBeforeSortChanged in interface IDataBookDataBookHandler for before sort changed event.public DataBookHandler eventAfterSortChanged()
DataBookHandler for after sort changed event.
 
 This event is fired afterthe sort
 changes.
eventAfterSortChanged in interface IDataBookDataBookHandler for after sort changed event.public DataBookHandler eventBeforeColumnSelected()
DataBookHandler for before column selected event.
 
 This event is fired before the selected
 column changes.
eventBeforeColumnSelected in interface IDataBookDataBookHandler for before column selected event.public DataBookHandler eventAfterColumnSelected()
DataBookHandler for after column selected event.
 
 This event is fired after the selected
 column changes.
eventAfterColumnSelected in interface IDataBookDataBookHandler for after column selected event.public void addControl(IControl pControl)
IControl to this IDataRow as control.
 
 The registered IControl will be notified of changes in this
 IDataRow.
addControl in interface IDataRowaddControl in class DataRowpControl - the IControl to add.IDataRow.removeControl(IControl), 
IDataRow.getControls()public int getRowIndex()
IDataPage.
getRowIndex in interface IChangeableDataRowgetRowIndex in class ChangeableDataRowIDataPage, can be
         -1 if there is no parent IDataPage.public IDataPage getDataPage()
IDataPage.
getDataPage in interface IChangeableDataRowgetDataPage in class ChangeableDataRowIDataPage, can null if there is no
         parent IDataPage.
protected void finalize()
                 throws java.lang.Throwable
finalize in class java.lang.Objectjava.lang.Throwable
public java.lang.Object getValue(int pColumnIndex)
                          throws ModelException
getValue in interface IDataRowgetValue in class DataRowpColumnIndex - the column index.
ModelException - if the column index is out of bounds.IDataRow.getValue(String)
public java.lang.Object getValue(java.lang.String pColumnName)
                          throws ModelException
getValue in interface IDataRowgetValue in class DataRowpColumnName - the name of the column.
ModelException - if there is no column with the given name.IDataRow.getValue(int)
public void setValue(java.lang.String pColumnName,
                     java.lang.Object pValue)
              throws ModelException
 After the value has changed the value
 changed event and value changed (by
 name) event are invoked and fired. Afterwards all registered
 IControls are notified of the change by invoking
 IControl.notifyRepaint().
setValue in interface IDataRowsetValue in class DataRowpColumnName - the column name.pValue - the new value for the named column.
ModelException - if there is no column with the given name or the
             given value can not be converted to the IDataType of
             the column.IDataRow.eventValuesChanged(), 
IDataRow.eventValuesChanged(String), 
IDataType.convertToTypeClass(Object)
public java.lang.Object[] getValues(java.lang.String[] pColumnNames)
                             throws ModelException
Object array.
 
 Note that the returned Object array does not represent an
 internal state of the IDataRow. Modifying the array does not
 change the IDataRow.
getValues in interface IDataRowgetValues in class DataRowpColumnNames - the names of the columns from which to get the
            values. Can be null for all columns (which is equal to
            IRowDefinition.getColumnNames().
Object array.
ModelException - if there is no column with one of the specified
             names.IDataRow.getValue(int), 
IDataRow.getValue(String)
public IDataRow createDataRow(java.lang.String[] pColumnNames)
                       throws ModelException
IDataRow which only contains the
 specified columns and their values.
createDataRow in interface IDataRowcreateDataRow in class DataRowpColumnNames - a String array of column names. Can be
            null for all columns (which is equal to
            IRowDefinition.getColumnNames().
IDataRow which only contains the specified columns
         and their values.
ModelException - if new IDataRow could not be constructed.
public void setValues(java.lang.String[] pColumnNames,
                      java.lang.Object[] pValues)
               throws ModelException
 The String array which represents the column names is directly
 mapped to the Object array which holds the values. So they must
 be equal in length.
 
 After the value has changed the value
 changed event and value changed (by
 name) event are invoked and fired. Afterwards all registered
 IControls are notified of the change by invoking
 IControl.notifyRepaint().
setValues in interface IDataRowsetValues in class DataRowpColumnNames - a String array of the column names. Can be
            null for all columns (which is equal to
            IRowDefinition.getColumnNames().pValues - a Object array of values to set in the
            corresponding columns.
ModelException - if there is no column with one of the specified
             names or if any of the values could not be converted to the
             IDataType of the column.IDataRow.eventValuesChanged(), 
IDataRow.eventValuesChanged(String), 
IDataRow.setValue(String, Object), 
IDataType.convertToTypeClass(Object)public java.lang.String toString()
toString in class ChangeableDataRowpublic void notifyRepaintControls()
registered controls that there are new
 values and that they must redraw themselves. For this purpose the
 IControl.notifyRepaint() method is invoked on all registered
 IControls.
notifyRepaintControls in interface IDataRownotifyRepaintControls in class DataRowIControl.notifyRepaint()
public void saveEditingControls()
                         throws ModelException
registered controls that they should
 save their values. For this purpose the IControl.saveEditing()
 method is invoked on all registered IControls.
saveEditingControls in interface IDataRowsaveEditingControls in class DataRowModelException - if saving of any of the registered
             IControls fails.IControl.notifyRepaint()public void cancelEditingControls()
registered controls that they should
 cancel any pending editing operation and revert to the values in this
 IDataRow. For this purpose the IControl.cancelEditing()
 method is invoked on all registered IControls.
cancelEditingControls in interface IDataRowcancelEditingControls in class DataRowpublic IRowDefinition getRowDefinition()
IRowDefinition that is used.
 
 The IRowDefinition contains all the information about the
 columns.
getRowDefinition in interface IDataRowgetRowDefinition in class DataRowIRowDefinition that is used.
public void restoreDataPage()
                     throws ModelException
ModelException - - if an ModelException happens during undo the changes.restoreAllRows()
protected void reloadIntern()
                     throws ModelException
ModelException - if reloading failed
public void reloadDataPage(IDataBook.SelectionMode pSelectionMode)
                    throws ModelException
pSelectionMode - pSelectionMode the Selection mode to use
ModelException - if an DataSourceException happens during get the requested row.reload(javax.rad.model.IDataBook.SelectionMode)public boolean hasChanges()
true if there are changes
public boolean hasDataPage(IDataRow pRootDataRow,
                           TreePath pTreePath)
                    throws ModelException
IDataPage to specified root row and TreePath
 from the master DataBook exists.
pRootDataRow - the root IDataRow of the DataBook to check.pTreePath - the TreePath to use.
IDataPage to specified root row and TreePath
         from the master DataBook exists.
ModelException - if the pRootDataRow don't contains the root columns from the DataBook.
protected MemDataPage createAndCacheDataPage(IDataRow pMasterDataRow)
                                      throws ModelException
pMasterDataRow - the master IDataRow for this IDataPage.
ModelException - if getting the UID of the datarow failed.createDataPage(IDataRow)protected MemDataPage createDataPage(IDataRow pMasterDataRow)
pMasterDataRow - the master IDataRow for this IDataPage.
protected boolean isMemSort()
protected void setMemSort(boolean pMemSort)
pMemSort - true if the sort is handled in memory.protected boolean isMemFilter()
protected void setMemFilter(boolean pMemFilter)
pMemFilter - true if the filter is handled in memory.protected boolean isWritebackEnabled()
protected void setWritebackEnabled(boolean pWritebackEnabled)
pWritebackEnabled - determines if changes should be written to the store.public boolean isLockAndRefetchEnabled()
public void setLockAndRefetchEnabled(boolean pLockAndRefetchEnabled)
pLockAndRefetchEnabled - true if lock and refetch is enabled.public int getReadAhead()
public void setReadAhead(int pReadAheadRowCount)
pReadAheadRowCount - the row count to read ahead from the IDBAccess
public int getEstimatedRowCount()
                         throws ModelException
IDBAccess for this RemoteDataBook.
ModelException - the the detail DataBook couldn't synchronized with the master DataBookpublic boolean isSortDataRowOnSave()
public void setSortDataRowOnSave(boolean pSortDataRowOnSave)
pSortDataRowOnSave - true, if the current saved row should be moved to the correct possition according to the set SortDefinition.
protected IDataRow executeInsert(IChangeableDataRow pDataRow)
                          throws ModelException
pDataRow - the data row to insert
ModelException - if an ModelException occur during insert.
protected IDataRow executeUpdate(IChangeableDataRow pDataRow)
                          throws ModelException
pDataRow - the data row to update
ModelException - if an ModelException occur during update.
protected void executeDelete(IChangeableDataRow pDataRow)
                      throws ModelException
pDataRow - the data row to delete
ModelException - if an ModelException occur during delete.
protected IDataRow executeLockAndRefetch(IChangeableDataRow pDataRow)
                                  throws ModelException
pDataRow - the data row to lock
ModelException - if an ModelException occur during insert.public IDataBook getRootDataBook()
getRootDataBook in interface IDataBookprotected IDataBook getRootDataBookIntern()
protected void invokeTreeSaveEditingControls()
                                      throws ModelException
IComponent  the saveEditing() method.
ModelException - if saving the editors fails.protected void invokeTreeCancelEditingControls()
IComponent  the cancelEditing() method.
protected void executeRefresh()
                       throws ModelException
ModelException - if an ModelExcpetion happen during refresh
protected void executeRefreshDataPage()
                               throws ModelException
ModelException - if an ModelExcpetion happen during refresh
protected void clear()
              throws ModelException
ModelException - if an ModelExcpetion happen during refresh
protected void clearCurrentDataPage()
                             throws ModelException
ModelException - if an ModelExcpetion happen during refresh
protected void setSelectedRowInternal(int pDataRowIndex)
                               throws ModelException
pDataRowIndex - the new row index to use.
ModelException - if new row couldn't determined or selected.
protected SortDefinition keepSortableColumns(SortDefinition pSortDefinition)
                                      throws ModelException
SortDefinition with only the ColumnDefinition.isSortable() columns
 from the given SortDefinition.
pSortDefinition - the SortDefinition to process.
SortDefinition with only ColumnDefinition.isSortable() columns.
         null if no columns remained or if the given SortDefinition was null
         or if the this databook is currently not open.
ModelException - if accessing the column information failed.
protected void store()
              throws ModelException
store in class ChangeableDataRowModelException - if a ModelException occurs.
protected void clearFilterSortInMemDataPages()
                                      throws ModelException
ModelException - if a ModelException occurs.
protected void clearFilterSortInCurrentMemDataPage()
                                            throws ModelException
ModelException - if a ModelException occurs.public void setReadOnlyWithoutSave(boolean pReadOnly)
pReadOnly - true to set the databook readonly, false otherwiseprotected boolean isDataPageRefetchPossible()
  | 
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||