Link to: source code | tables
directory
Copyright Turtle Creek Software 1996-2006. All Rights Reserved.
This class manages data tables for the Goldenseal accounting software,
small business management software, construction
project management software and
construction
accounting software.
class CDataTable : public CTCS_Table
{
public:
enum { class_ID = 'DTTL' };
CDataTable(LStream *inStream);
CDataTable(const SPaneInfo &inPaneInfo, const SViewInfo &inViewInfo);
virtual ~CDataTable();
virtual void InsertRows(const TableIndexT howMany, const Boolean redraw = true);
virtual CHolder *GetNewDataHolder(const TableIndexT /*row*/,
const TableIndexT /*col*/) const
{ return (CHolder*) NEW CStringHolder; } // TCS cast added 2/5/98
virtual void InsertCols(const TableIndexT howMany, const SInt32 inColWidth = 0,
const Boolean redraw = true);
virtual void RemoveRows(const TableIndexT howMany, const Boolean redraw = true);
virtual void RemoveCols(const TableIndexT howMany, const Boolean redraw = true);
// the following routines are for setting and getting the contents
// of the data entries in the data arrays
virtual Boolean SetDataCellText(const TableIndexT row, const TableIndexT col,
const CTextString &inText);
virtual Boolean SetDataCellValue(const TableIndexT row, const TableIndexT col,
const SInt32 inValue);
virtual CTextString GetDataCellText(const TableIndexT row,
const TableIndexT col) const;
virtual SInt32 GetDataCellValue(const TableIndexT row,
const TableIndexT col) const;
/*virtual Boolean SetCellData(TableIndexT row, TableIndexT col,
const CHolder &dataHolder);*/
/*virtual Boolean GetCellData(TableIndexT row, TableIndexT col,
CHolder *outHolder) const;*/
// the following routines are overrides of CTCS_Table accessor routines;
// these just call the above data-access routines
virtual Boolean SetCellText(const TableIndexT row, const TableIndexT col,
const CTextString &inText,
Boolean /*redraw*/ = true)
{ return SetDataCellText(row, col, inText); }
virtual Boolean SetCellValue(const TableIndexT row, const TableIndexT col, SInt32 inValue)
{ return SetDataCellValue(row, col, inValue); }
virtual CTextString GetCellText(const TableIndexT row, const TableIndexT col) const
{ return GetDataCellText(row, col); }
virtual SInt32 GetCellValue(const TableIndexT row, const TableIndexT col) const
{ return GetDataCellValue(row, col); }
virtual SInt16 GetColData(const TableIndexT /*col*/) const { return 0; }
virtual void ClearRow(const TableIndexT row);
virtual TableIndexT FirstDataRow() const { return 1; }
virtual TableIndexT LastDataRow() const { return LastRow(); }
virtual void MakeSingleRowTable(const Boolean redraw = true, const Boolean findMode = false);
virtual Boolean FillOnlyVisibleRows() { return mFillOnlyVisibleRows; }
virtual void SetFillOnlyVisibleRows(const Boolean inValue) { mFillOnlyVisibleRows = inValue; }
virtual void HandleCellDrag(const TableCellT &sourceCell, const TableCellT &targetCell);
virtual void SwapRowData(const TableIndexT sourceRow, const TableIndexT targetRow);
virtual void SortTableRows(const TagType colNumber, const Boolean sortAscending,
TObjectIDArray *breakdownArray = nil);
virtual TUInt32Array GetSortedRowArray(const TagType colNumber, const Boolean sortAscending);
virtual void GetSortedStringArray(const TagType colNumber, const Boolean sortAscending,
TUInt32Array &rowArray);
virtual void GetSortedMoneyArray(const TagType colNumber, const Boolean sortAscending,
TUInt32Array &rowArray);
virtual void GetSortedDateArray(const TagType colNumber, const Boolean sortAscending,
TUInt32Array &rowArray);
virtual SInt32 GetTableSize() const;
protected:
CArrayOfDataArrays mDataArrays;
UInt8 mFillOnlyVisibleRows:1, // TCS 1/11/01
mDataTableFiller:7;
SInt32 mTableDataSize;
// return the data array for the requested column. This can return
// nil, which is why we don't check the return value of FetchItemAt
CDataHolderPtrArray *GetColDataArray(const TableIndexT col) const
{
CDataHolderPtrArray *dataArray = nil;
mDataArrays.FetchItemAt(col, dataArray);
return dataArray;
}
const CHolder *GetCellDataHolder(const TableIndexT row, const TableIndexT col) const;
Boolean SetCellDataHolder(const TableIndexT row, const TableIndexT col,
CHolder *dataHolder);
}; |