Documents > BPS V2 C++ API
bpstablefield.h
Go to the documentation of this file.
00001 
00004 #ifndef BPSTABLEFIELD_H
00005 #define BPSTABLEFIELD_H
00006 
00007 #include "bpsgui_global.h"
00008 #include <QList>
00009 #include <QVariant>
00010 
00011 class BpsTable;
00012 class BpsTableItem;
00013 class QWidget;
00014 class QPainter;
00015 class QAbstractItemModel;
00016 class QStyleOptionViewItem;
00017 
00023 class BPSGUI_EXPORT BpsTableField : public QObject
00024 {
00025     Q_OBJECT
00026     BPS_PRIVATE(BpsTableField)
00027     friend class BpsTable;
00028 
00029 public:
00038     BpsTableField(const QString& aHeader, const QString& aColumn);
00039 
00043     BpsTableField(const BpsTableField& aOther);
00044 
00046     virtual ~BpsTableField();
00048 
00053     virtual BpsTableField* clone() const = 0;
00054 
00058     QString column() const;
00059 
00063     QString wholeColumn() const;
00064 
00068     QString header() const;
00069 
00073     bool isEditable() const;
00074 
00079     void setIsEditable(bool aIsEditable);
00080 
00084     int sortRole() const;
00085 
00090     void setSortRole(int aRole);
00091 
00110     int fractionDigits() const;
00111 
00117     void setFractionDigits(int aDigits);
00118 
00122     Qt::Alignment alignment() const;
00123 
00128     void setAlignment(Qt::Alignment aAlignment);
00129 
00133     QString displayedColumn() const;
00134 
00145     void setDisplayedColumn(const QString& aColumn);
00146 
00150     virtual QVariant defaultValue() const;
00151 
00160     virtual QVariant display(BpsTableItem* aItem) const;
00161 
00167     virtual QVariant decoration(BpsTableItem* aItem) const;
00168 
00174     virtual QWidget* createEditor(QWidget* aParent = 0) = 0;
00175 
00181     virtual void setEditorData(QWidget* aEditor, const QVariant& aValue) = 0; 
00182 
00188     virtual QVariant editorData(QWidget* aEditor) const = 0;
00189 
00195     virtual QVariant exp(const QVariant& aValue);
00196 
00202     virtual QVariant imp(const QVariant& aValue);
00203 
00204 signals:
00210     void editorDataChanged(const QString& aColumn, const QVariant& aValue);
00211 
00212 protected:
00216     BpsTable* table() const;
00217 
00227     QVariantMap getSettings(const QStringList& aNames) const;
00228 
00230 private:
00231     void setTable(BpsTable* aTable);
00233 }; // BpsTableField
00234 
00235 
00239 class BPSGUI_EXPORT BpsSpecialField : public BpsTableField
00240 {
00241     Q_OBJECT
00242     BPS_PRIVATE(BpsSpecialField)
00243 
00244 public:
00252     BpsSpecialField(const QString& aHeader, const QString& aColumn);
00253 
00255     BpsSpecialField(const BpsSpecialField& aOther);
00256     virtual ~BpsSpecialField();
00257     virtual BpsSpecialField* clone() const;
00258     virtual QWidget* createEditor(QWidget* aParent = 0);
00259     virtual void setEditorData(QWidget* aEditor, const QVariant& aValue); 
00260     virtual QVariant editorData(QWidget* aEditor) const;
00262 }; // BpsSpecialField
00263 
00264 
00268 class BPSGUI_EXPORT BpsCheckBoxField : public BpsTableField
00269 {
00270     Q_OBJECT
00271     BPS_PRIVATE(BpsCheckBoxField)
00272 
00273 public:
00285     BpsCheckBoxField(
00286         const QString& aHeader, const QString& aColumn, 
00287         const QString& aUnchecked, const QString& aUncheckedDisplay, 
00288         const QString& aChecked, const QString& aCheckedDisplay);
00289 
00291     BpsCheckBoxField(const BpsCheckBoxField& aOther);
00292     virtual ~BpsCheckBoxField();
00293     virtual BpsCheckBoxField* clone() const;
00294     virtual QVariant defaultValue() const;
00295     virtual QVariant display(BpsTableItem* aItem) const;
00296     virtual QWidget* createEditor(QWidget* aParent = 0);
00297     virtual void setEditorData(QWidget* aEditor, const QVariant& aValue); 
00298     virtual QVariant editorData(QWidget* aEditor) const;
00300 }; // BpsCheckBoxField
00301 
00302 
00306 class BPSGUI_EXPORT BpsLineEditField : public BpsTableField
00307 {
00308     Q_OBJECT
00309     BPS_PRIVATE(BpsLineEditField)
00310 
00311 public:
00320     BpsLineEditField(const QString& aHeader, const QString& aColumn, QVariant::Type aType = QVariant::String);
00321 
00323     BpsLineEditField(const BpsLineEditField& aOther);
00324     virtual ~BpsLineEditField();
00325     virtual BpsLineEditField* clone() const;
00326     virtual QVariant defaultValue() const;
00327     virtual QWidget* createEditor(QWidget* aParent = 0);
00328     virtual void setEditorData(QWidget* aEditor, const QVariant& aValue); 
00329     virtual QVariant editorData(QWidget* aEditor) const;
00331 }; // BpsLineEditField
00332 
00333 
00337 class BPSGUI_EXPORT BpsTextEditField : public BpsTableField
00338 {
00339     Q_OBJECT
00340     BPS_PRIVATE(BpsTextEditField)
00341 
00342 public:
00350     BpsTextEditField(const QString& aHeader, const QString& aColumn);
00351 
00353     BpsTextEditField(const BpsTextEditField& aOther);
00354     virtual ~BpsTextEditField();
00355     virtual BpsTextEditField* clone() const;
00356     virtual QVariant defaultValue() const;
00357     virtual QWidget* createEditor(QWidget* aParent = 0);
00358     virtual void setEditorData(QWidget* aEditor, const QVariant& aValue); 
00359     virtual QVariant editorData(QWidget* aEditor) const;
00361 }; // BpsTextEditField
00362 
00363 
00367 class BPSGUI_EXPORT BpsDateTimeField : public BpsTableField
00368 {
00369     Q_OBJECT
00370         BPS_PRIVATE(BpsDateTimeField)
00371 
00372 public:
00380     BpsDateTimeField(const QString& aHeader, const QString& aColumn);
00381 
00383     BpsDateTimeField(const BpsDateTimeField& aOther);
00384     virtual ~BpsDateTimeField();
00385     virtual BpsDateTimeField* clone() const;
00386     virtual QVariant defaultValue() const;
00387     virtual QVariant display(BpsTableItem* aItem) const;
00388     virtual QWidget* createEditor(QWidget* aParent = 0);
00389     virtual void setEditorData(QWidget* aEditor, const QVariant& aValue); 
00390     virtual QVariant editorData(QWidget* aEditor) const;
00392 }; // BpsDateTimeField
00393 
00394 
00399 class BPSGUI_EXPORT BpsNvlDateTimeField : public BpsTableField
00400 {
00401     Q_OBJECT
00402     BPS_PRIVATE(BpsNvlDateTimeField)
00403 
00404 public:
00412     BpsNvlDateTimeField(const QString& aHeader, const QString& aColumn);
00413 
00415     BpsNvlDateTimeField(const BpsNvlDateTimeField& aOther);
00416     virtual ~BpsNvlDateTimeField();
00417     virtual BpsNvlDateTimeField* clone() const;
00418     virtual QVariant defaultValue() const;
00419     virtual QVariant display(BpsTableItem* aItem) const;
00420     virtual QWidget* createEditor(QWidget* aParent = 0);
00421     virtual void setEditorData(QWidget* aEditor, const QVariant& aValue); 
00422     virtual QVariant editorData(QWidget* aEditor) const;
00424 }; // BpsNvlDateTimeField
00425 
00426 
00430 class BPSGUI_EXPORT BpsSpinBoxField : public BpsTableField
00431 {
00432     Q_OBJECT
00433     BPS_PRIVATE(BpsSpinBoxField)
00434 
00435 public:
00443     BpsSpinBoxField(const QString& aHeader, const QString& aColumn);
00444 
00446     BpsSpinBoxField(const BpsSpinBoxField& aOther);
00447     virtual ~BpsSpinBoxField();
00448     virtual BpsSpinBoxField* clone() const;
00449     virtual QVariant defaultValue() const;
00450     virtual QWidget* createEditor(QWidget* aParent = 0);
00451     virtual void setEditorData(QWidget* aEditor, const QVariant& aValue); 
00452     virtual QVariant editorData(QWidget* aEditor) const;
00454 }; // BpsSpinBoxField
00455 
00456 
00460 typedef QPair<QVariant,QString> BpsComboBoxOption;
00461 
00462 
00466 typedef QList<BpsComboBoxOption> BpsComboBoxOptions;
00467 
00468 
00472 class BPSGUI_EXPORT BpsComboBoxField : public BpsTableField
00473 {
00474     Q_OBJECT
00475     BPS_PRIVATE(BpsComboBoxField)
00476 
00477 public:
00486     BpsComboBoxField(
00487         const QString& aHeader,
00488         const QString& aColumn, 
00489         const BpsComboBoxOptions& aOptions);
00490 
00492     BpsComboBoxField(const BpsComboBoxField& aOther);
00493     virtual ~BpsComboBoxField();
00494     virtual BpsComboBoxField* clone() const;
00495     virtual QVariant defaultValue() const;
00496     virtual QVariant display(BpsTableItem* aItem) const;
00497     virtual QWidget* createEditor(QWidget* aParent = 0);
00498     virtual void setEditorData(QWidget* aEditor, const QVariant& aValue); 
00499     virtual QVariant editorData(QWidget* aEditor) const;
00501 }; // BpsComboBoxField
00502 
00503 
00509 class BPSGUI_EXPORT BpsColorComboBoxField : public BpsTableField
00510 {
00511     Q_OBJECT
00512     BPS_PRIVATE(BpsColorComboBoxField)
00513 
00514 public:
00522     BpsColorComboBoxField(const QString& aHeader, const QString& aColumn);
00523 
00525     BpsColorComboBoxField(const BpsColorComboBoxField& aOther);
00526     virtual ~BpsColorComboBoxField();
00527     virtual BpsColorComboBoxField* clone() const;
00528     virtual QVariant defaultValue() const;
00529     virtual QVariant decoration(BpsTableItem* aItem) const;
00530     virtual QWidget* createEditor(QWidget* aParent = 0);
00531     virtual void setEditorData(QWidget* aEditor, const QVariant& aValue); 
00532     virtual QVariant editorData(QWidget* aEditor) const;
00534 }; // BpsColorComboBoxField
00535 
00536 
00540 class BPSGUI_EXPORT BpsBarcodeComboBoxField : public BpsTableField
00541 {
00542     Q_OBJECT
00543     BPS_PRIVATE(BpsBarcodeComboBoxField)
00544 
00545 public:
00553     BpsBarcodeComboBoxField(const QString& aHeader, const QString& aColumn);
00554 
00556     BpsBarcodeComboBoxField(const BpsBarcodeComboBoxField& aOther);
00557     virtual ~BpsBarcodeComboBoxField();
00558     virtual QVariant defaultValue() const;
00559     virtual BpsBarcodeComboBoxField* clone() const;
00560     virtual QVariant display(BpsTableItem* aItem) const;
00561     virtual QWidget* createEditor(QWidget* aParent = 0);
00562     virtual void setEditorData(QWidget* aEditor, const QVariant& aValue); 
00563     virtual QVariant editorData(QWidget* aEditor) const;
00565 }; // BpsBarcodeComboBoxField
00566 
00567 
00581 class BPSGUI_EXPORT BpsRelationInputField : public BpsTableField
00582 {
00583     Q_OBJECT
00584     BPS_PRIVATE(BpsRelationInputField)
00585 
00586 public:
00597     BpsRelationInputField(
00598         const QString& aHeader,
00599         const QString& aColumn, 
00600         const QString& aRelTable,
00601         const QString& aRelColumn);
00602 
00606     QString relTable() const;
00607 
00611     QString relColumn() const;
00612 
00614     BpsRelationInputField(const BpsRelationInputField& aOther);
00615     virtual ~BpsRelationInputField();
00616     virtual BpsRelationInputField* clone() const;
00617     virtual QVariant display(BpsTableItem* aItem) const;
00618     virtual QWidget* createEditor(QWidget* aParent = 0);
00619     virtual void setEditorData(QWidget* aEditor, const QVariant& aValue); 
00620     virtual QVariant editorData(QWidget* aEditor) const;
00621     virtual QVariant exp(const QVariant& aValue);
00622     virtual QVariant imp(const QVariant& aValue);
00624 }; // BpsRelationInputField
00625 
00626 
00635 class BPSGUI_EXPORT BpsLabelerInputField : public BpsTableField
00636 {
00637     Q_OBJECT
00638     BPS_PRIVATE(BpsLabelerInputField)
00639 
00640 public:
00648     BpsLabelerInputField(const QString& aHeader, const QString& aColumn);
00649 
00651     BpsLabelerInputField(const BpsLabelerInputField& aOther);
00652     virtual ~BpsLabelerInputField();
00653     virtual BpsLabelerInputField* clone() const;
00654     virtual QVariant display(BpsTableItem* aItem) const;
00655     virtual QWidget* createEditor(QWidget* aParent = 0);
00656     virtual void setEditorData(QWidget* aEditor, const QVariant& aValue); 
00657     virtual QVariant editorData(QWidget* aEditor) const;
00658     virtual QVariant exp(const QVariant& aValue);
00659     virtual QVariant imp(const QVariant& aValue);
00661 }; // BpsLabelerInputField
00662 
00663 
00667 class BPSGUI_EXPORT BpsCronEditField : public BpsTableField
00668 {
00669     Q_OBJECT
00670     BPS_PRIVATE(BpsCronEditField)
00671 
00672 public:
00680     BpsCronEditField(const QString& aHeader, const QString& aColumn);
00681 
00683     BpsCronEditField(const BpsCronEditField& aOther);
00684     virtual ~BpsCronEditField();
00685     virtual QVariant defaultValue() const;
00686     virtual BpsCronEditField* clone() const;
00687     virtual QWidget* createEditor(QWidget* aParent = 0);
00688     virtual void setEditorData(QWidget* aEditor, const QVariant& aValue); 
00689     virtual QVariant editorData(QWidget* aEditor) const;
00691 }; // BpsCronEditField
00692 
00696 class BPSGUI_EXPORT BpsStockLocationInputField : public BpsTableField
00697 {
00698     Q_OBJECT
00699     BPS_PRIVATE(BpsStockLocationInputField)
00700 
00701 public:
00709     BpsStockLocationInputField(const QString& aHeader, const QString& aColumn);
00710 
00712     BpsStockLocationInputField(const BpsStockLocationInputField& aOther);
00713     virtual ~BpsStockLocationInputField();
00714     virtual BpsStockLocationInputField* clone() const;
00715     virtual QVariant display(BpsTableItem* aItem) const;
00716     virtual QWidget* createEditor(QWidget* aParent = 0);
00717     virtual void setEditorData(QWidget* aEditor, const QVariant& aValue); 
00718     virtual QVariant editorData(QWidget* aEditor) const;
00719     virtual QVariant exp(const QVariant& aValue);
00720     virtual QVariant imp(const QVariant& aValue);
00722 }; // BpsStockLocationInputField
00723 
00724 
00728 class BPSGUI_EXPORT BpsArticleInputField : public BpsTableField
00729 {
00730     Q_OBJECT
00731     BPS_PRIVATE(BpsArticleInputField)
00732 
00733 public:
00741     BpsArticleInputField(const QString& aHeader, const QString& aColumn);
00742 
00744     BpsArticleInputField(const BpsArticleInputField& aOther);
00745     virtual ~BpsArticleInputField();
00746     virtual BpsArticleInputField* clone() const;
00747     virtual QVariant display(BpsTableItem* aItem) const;
00748     virtual QWidget* createEditor(QWidget* aParent = 0);
00749     virtual void setEditorData(QWidget* aEditor, const QVariant& aValue); 
00750     virtual QVariant editorData(QWidget* aEditor) const;
00751     virtual QVariant exp(const QVariant& aValue);
00752     virtual QVariant imp(const QVariant& aValue);
00754 }; // BpsArticleInputField
00755 
00756 
00760 class BPSGUI_EXPORT BpsPartnerInputField : public BpsTableField
00761 {
00762     Q_OBJECT
00763     BPS_PRIVATE(BpsPartnerInputField)
00764 
00765 public:
00773     BpsPartnerInputField(const QString& aHeader, const QString& aColumn);
00774 
00776     BpsPartnerInputField(const BpsPartnerInputField& aOther);
00777     virtual ~BpsPartnerInputField();
00778     virtual BpsPartnerInputField* clone() const;
00779     virtual QVariant display(BpsTableItem* aItem) const;
00780     virtual QWidget* createEditor(QWidget* aParent = 0);
00781     virtual void setEditorData(QWidget* aEditor, const QVariant& aValue); 
00782     virtual QVariant editorData(QWidget* aEditor) const;
00783     virtual QVariant exp(const QVariant& aValue);
00784     virtual QVariant imp(const QVariant& aValue);
00786 }; // BpsPartnerInputField
00787 
00788 
00796 class BPSGUI_EXPORT BpsImageField : public BpsTableField
00797 {
00798     Q_OBJECT
00799     BPS_PRIVATE(BpsImageField)
00800 
00801 public:
00810     BpsImageField(const QString& aHeader, const QString& aColumn, const QSize& aThumbSize);
00811 
00813     BpsImageField(const BpsImageField& aOther);
00814     virtual ~BpsImageField();
00815     virtual BpsImageField* clone() const;
00816     virtual QVariant display(BpsTableItem* aItem) const;
00817     virtual QVariant decoration(BpsTableItem* aItem) const;
00818     virtual QWidget* createEditor(QWidget* aParent = 0);
00819     virtual void setEditorData(QWidget* aEditor, const QVariant& aValue); 
00820     virtual QVariant editorData(QWidget* aEditor) const;
00822 }; // BpsImageField
00823 
00824 
00825 #endif // BPSTABLEFIELD_H