Documents > BPS V2 C++ API
bpstableitem.h
Go to the documentation of this file.
00001 
00004 #ifndef BPSTABLEITEM_H
00005 #define BPSTABLEITEM_H
00006 
00007 #include "bpsgui_global.h"
00008 #include "bpstableoptions.h"
00009 #include <QSqlRecord>
00010 #include <QVariantMap>
00011 
00012 class BpsTableModel;
00013 
00017 class BPSGUI_EXPORT BpsTableItem
00018 {
00019     BPS_PRIVATE(BpsTableItem)
00020     friend class BpsTableModel;
00021     friend class BpsTableModelPrivate;
00022 
00023 public:
00027     enum Status {
00028         StatusSaved     = 0,        
00029         StatusEdited    = 1,        
00030         StatusAdded     = 2,        
00031         StatusDeleted   = 3         
00032     };
00033 
00037     enum CacheIndex {
00038         CacheDisplayColumnStart = 1000000   
00039     };
00040 
00044     QVariant key() const;
00045 
00049     Status status() const;
00050 
00056     QVariant value(const QString& aField) const;
00057 
00064     bool setValue(const QString& aField, const QVariant& aValue);
00065 
00074     QVariant cache(const QString& aField) const;
00075 
00081     void setCache(const QString& aField, const QVariant& aValue);
00082 
00093     QVariant cache(int aIndex) const;
00094 
00105     void setCache(int aIndex, const QVariant& aValue);
00106 
00112     BpsTableOptions options(const QString& aMappingTable) const;
00113 
00120     bool setOptions(const QString& aMappingTable, const BpsTableOptions& aOptions);
00121 
00126     void addFields(const QSqlRecord& aRecord);
00127 
00133     bool hasField(const QString& aField);
00134 
00140     bool hasOptions(const QString& aTable);
00141 
00147     BpsTableModel* slaveModel(const QString& aTable);
00148 
00150 private:
00151     BpsTableItem(BpsTableModel* aModel, const QSqlRecord& aRecord);
00152     BpsTableItem(BpsTableItem* aOther, bool aCopy);
00153     BpsTableItem(BpsTableItem* aOther);
00154     ~BpsTableItem();
00155 
00156     void checkStatus();
00157     void setSaved();
00158     void setAdded();
00159     void setDeleted();
00160 
00161     BpsTableItem* parent() const;
00162     QVariant parentKey() const;
00163     int index() const;
00164 
00165     QSqlRecord record() const;
00166     int fieldCount() const;
00167 
00168     QVariantMap values() const;
00169     QVariantMap changedValues() const;
00170     QVariant value(int aIndex) const;
00171     bool setValue(int aIndex, const QVariant& aValue);
00172 
00173     void addOptions(const QString& aTable, const BpsTableOptions& aOptions);
00174     QList<QString> optionTables() const;
00175     BpsTableOptions oldOptions(const QString& aTable) const;
00176 
00177     int childCount() const;
00178     BpsTableItem* childItem(int aIndex);
00179     int childIndex(BpsTableItem* aChild) const;
00180 
00181     void insertChild(int aIndex, BpsTableItem* aChild);
00182     void appendChild(BpsTableItem* aChild);
00183     BpsTableItem* takeChild(int aIndex);
00184 
00185     bool childrenLoaded() const;
00186     void setChildrenLoaded(bool aLoaded);
00187 
00188     void addSlaveModel(BpsTableModel* aModel);
00189     QList<BpsTableModel*> slaveModels() const;
00191 };
00192 
00193 #endif // BPSTABLEITEM_H